1

我使用基於SQL Server數據庫的系統,該數據庫有很多年的開發經驗。數據量不是很大(幾GB),但它有很多複雜性(數百個表,數百個存儲過程)。數據庫表,函數,存儲過程,視圖等的日誌使用情況

我想先清理那些不再使用的東西。我們有一個每週/每月/每季/每年的週期,這意味着有些東西不會被使用一年。但是,如果有幾個月沒有使用過的簡短列表,我們可以通過檢查來確定它們是否仍然有用。

我的意圖是開始記錄對所有數據庫對象的訪問。我有一些想法,但我想要的是一個日誌,我可以把它變成一個沒有被使用的事物列表。我有一些想法,但我想要一些專家的幫助。

編輯:我也想澄清一下,我可以希望看到表/視圖的訪問以及存儲的特效和函數。

+0

什麼是您的數據庫服務器軟件? – 2009-08-03 08:50:39

+0

Sql Server 2005/2008。我們都有。 – 2009-08-03 09:19:15

回答

0

那麼SQL分析器將是我的建議,但你需要小心有這樣的運行,因爲它確實會在運行跟蹤時引入性能開銷。

+0

是的,這是我的關注。數據庫服務器負載不是很重,但我認爲在「batchComplete」上運行一年的跟蹤可能會產生大量數據。 – 2009-08-03 09:17:06

1

這是一個類似的問題,特別是問什麼時候使用存儲過程: How do I log the frequency and last-used time for a stored procedure?

+0

啊是的。我沒有看到那一個。但是我有一些代碼會用日誌語句標記所有存儲的特效。不過,我也想記錄表格並查看訪問權限。我已經考慮添加日誌觸發器的表和視圖插入/更新/刪除,但我不知道如何陷入「選擇」訪問。 – 2009-08-03 09:18:45

1

您檢查sys.dm_db_index_usage_stats:最後的更新被保留在last_user_update列,最後選擇是保留在last_user_seek之一,last_user_scanlast_user_lookup。請注意,計數器在SQL Server啓動時重置,因此您需要運行應用程序並對每個功能進行徹底測試以獲得相關結果。

對於存儲過程,您應該啓動監視SP:Starting事件的服務器跟蹤。在運行測試之後,再次練習產品的每個功能,停止跟蹤並使用SQL聚合函數統計跟蹤文件中TextData中不同過程名稱的出現次數。你用fn_trace_gettable讀取跟蹤。

相關問題