2009-01-18 47 views
2

我使用的遺留系統有數萬行存儲過程代碼,其中很多存儲過程已經過時並且不再使用。似乎沒有辦法檢查執行歷史記錄,所以我的問題是,如果通過在保留執行記錄的表中插入一行來啓動每個存儲過程可能是一個好主意?SQL Server 2008中存儲過程的使用歷史

可以很簡單,如:

INSERT INTO executionHistory( 名, 日期 ) 選擇 'spName', GETDATE()

- 那麼程序的其餘部分

我想這可能對清理舊的未使用的代碼非常有用,並且在嘗試決定優化的位置時也可能非常方便。我的意思是,對於一天執行50次的程序,最好在執行時間減少10秒,而不是每年僅使用一次的程序上節省10分鐘的執行時間。

回答

0

我認爲你的想法很簡單,並且會實現你的目標。雖然它會涉及修改每個SP,但這是我選擇的路線。然後,您可以確保您能夠準確記錄數據庫上的所有活動。

另一張海報建議你做一個跟蹤 - 雖然這個工作時間很短,但它只會抓住你正在看的時間。你必須確保你追蹤任何重要的高流量時段,比如月末財務結算,即使如此,你錯過了其他時間,你認爲這不是什麼大不了的事情,所以你是主觀的。

+0

謝謝。情況正是如此,使用量通常會在月結束後出現高峯,季度結束,年度結束。 – jandersson 2009-01-19 08:19:20

1

SQL服務器中有一個跟蹤選項(SQL Profiler)。您可以追蹤一天的SQL活動並查看哪些sprocs在那裏執行。

這會給你一個關於你的優化重點在哪裏的好主意。

1

因爲你使用sql server 2008我不會做rwmnau建議,因爲這意味着你必須修改所有的存儲過程。 SQL Server 2008引入了一個名爲擴展事件和基於它們的SQL Server審計的功能。擴展事件是高性能追蹤系統。 通過使用SQL Server審計,您可以追蹤您的系統,而無需SQL追蹤的開銷。

相關問題