2010-02-18 58 views
1

我們有一個遺留/生產數據庫。它一直在不斷髮展和支持一個已經發展了10多年的網站。數據庫可以通過多種技術訪問 - perl cgi,php和java webapps。如何測試Oracle 10g以獲取表訪問指標?

已經累積了大量的殘餘物。我希望進行重大重構。我確信有些部分完全是遺留的(顯而易見的是具有零行的表)。爲了確定哪些部分是最常用的,我的首選策略是對數據庫進行測試,而不是通過大量的潛在訪問組件。

Oracle(10g)能否在每個表上放置觸發器來報告訪問的時間和頻率?有人可以指示我如何做到這一點或其他機制來實現相同的目標嗎?

(請評論和其他策略的建議,以幫助數據庫重構在這個senario也)。

回答

5

如果您只想知道哪些表被訪問(或者即使您想了解更多詳細信息),那麼最簡單的方法就是使用Oracle內置的AUDIT功能。 Find out more

請記住,某些數據庫對象只能使用季度甚至每年使用一次。所以你真的需要一套體面的文檔或一套100%覆蓋率的迴歸測試。當然,如果你有其中的任何一個,你可能不會在這裏問你的問題:)

+0

+1不要以爲只是因爲事情還沒有,因爲它的時間的最後X訪問量將來不會被訪問。 – 2010-02-18 13:53:57

+0

並且不要假設「未使用」表未被引用,例如,pl/sql。某些PL/SQL可能會避免使用TYPE聲明,因此傾向於使用%ROWTYPE語法聲明變量或集合。 DBA_DEPENDENCIES視圖可以幫助顯示存在哪些靜態依賴關係;沒有任何幫助,只能掃描DBA_SOURCE並祈求找到動態依賴關係。 – 2010-02-18 16:37:43

1

如果你在10g上並且已經打開TABLE MONITORING表,你可以輕鬆訪問DBA_ALL_TAB_MODIFICATIONS。

它保存有關表格修改的信息,包括自上次分析以來表格的插入,更新和刪除的近似數量。

上轉動臺監控和查詢計算百分比變化的一些信息是在這裏:link