0

我試圖從體驗中獲得最大的收益。T-SQL錯誤處理和日誌記錄

而且我通常使用企業庫日誌程序塊,我記錄錯誤和數據庫中的統計信息的一部分,因爲它是跟蹤誤差集中的地方,如果數據庫日誌失敗,通常它會記錄到事件日誌。

跟蹤消息應該進入文件:

你相信哪一個選項,我們應該去

1-只有一些跟蹤消息可以在代碼留下,如果有一個複雜的算法或不穩定的模塊。

OR

2 - 我們不應保留任何跟蹤消息的代碼,儘快清理乾淨,因爲錯誤得到解決。

用於數據庫。

我認爲,從SP和功能產生的錯誤應該被記錄到數據庫中的另一個表,這正是由AdventureWorksLT2008數據庫中完成。

將數據庫事件直接記錄到企業庫日誌表而不會將此錯誤提交到下一層是個不錯的主意。我認爲它更容易解決,因爲我可以在消息中添加更多自定義信息。當然一些錯誤將不會被處理,並且會到達下一層。

任何想法或意見,你做的其他事情。你想澄清的事情。

感謝

回答

0

你說的是捕獲錯誤並直接在T-SQL日誌記錄,而不是然後做RAISERROR得到它的調用者?

我認爲這是對某些種類的問題,一個可行的策略 - 例如,如果SP要發現一個問題,默默地糾正,只是發出警告。

但是它適用於哪些問題可能不會非常頻繁。

那種事情,我會考慮的事情一樣不同尋常的情況下,意外的更新完成的,而不是INSERT語句中?或者數據已經存在,所以不會生成。或在部署或創建腳本,跳過現有的表,等

0

如果你的數據庫有性能問題和SP /功能開始超時 - 記錄錯誤到數據庫可能無法正常工作?

+0

如果超時異常升高,誤差會登錄到事件日誌,旁邊我不除例外情況和失敗這不是假設是頻繁的開銷導致日誌記錄。 對於大量的應用程序,如果沒有數據庫(在這種情況下太慢),那麼沒有任何應用程序。我必須先解決這個問題。 – Costa 2010-06-19 09:40:39