我有一個Oracle表,它包含應用程序的事件日誌消息。我們不希望這張桌子失去控制並佔用太多空間,所以我們想要限制它可以包含的一些行數,例如一百萬。通過刪除舊行來自動實施最大數據庫表大小
所以我們想告訴Oracle,當表格變得太大時,它應該刪除最老的行以爲新行騰出空間。
有沒有辦法做到這一點?我想我們可以通過觸發器或通過使用存儲過程來創建所有插入,但有沒有更簡單的方法?
編輯:幾個答案建議涉及分區的解決方案。我們目前並未對此表進行分類,但我們有能力在必要時這樣做。然而,從調查問題來看,即使我們對錶格進行分區,我們仍然需要某種預定的作業來刪除舊的分區等。因此,我們決定放棄分區而傾向於計劃作業檢查行數並根據需要刪除舊行,每天一次。
感謝您的幫助,每個人。
如果它是一個「大」表,那麼你可能會發現分區更高性能。你可以放下他們沒有大驚小怪。如果您必須在大表上進行選擇並從中刪除行,則會在撤銷/重做方面產生開銷。當然你的決定。 – 2008-10-16 01:27:19