[英]T-Sql Error Handling and Logging
我正在嘗試從經驗中獲得最大收益。
另外,我通常使用企業庫日志記錄塊,將錯誤和部分統計信息記錄到數據庫中,因為它是跟蹤錯誤的集中位置,如果數據庫記錄失敗,通常轉到事件日志。
跟蹤消息應放入文件中:
您認為我們應該選擇哪種選擇
1-如果存在復雜的算法或不穩定的模塊,則某些跟蹤消息可以保留在代碼中。
要么
2-我們不應在代碼中保留任何跟蹤消息,在解決錯誤后立即將其清除。
對於數據庫。
我認為從SP和功能引發的錯誤應記錄到數據庫的另一個表中,而AdventureWorksLT2008數據庫正是這樣做的。
將數據庫事件直接記錄到企業庫日志表是一個壞主意,而不會將此錯誤引發到下一層。 我認為它更容易修復,因為我可以在消息中放入更多自定義信息。 當然,某些錯誤將不會得到處理,並將到達下一層。
您還有其他想法或意見。 您想澄清的事情。
謝謝
如果您的數據庫存在性能問題,並且SP /功能開始超時-將錯誤記錄到數據庫中可能不起作用怎么辦?
您是在談論捕獲錯誤並直接在T-SQL中記錄,而不是在進行RAISERROR以便將其傳遞給調用方嗎?
我認為這對於某些類型的問題而言是可行的策略-例如,如果SP希望發現問題並以靜默方式糾正它並僅發出警告。
但是,適用於此類問題的情況可能並不十分常見。
我會考慮的事情是類似非常規情況的情況,其中發生了意外的更新而不是INSERT? 或者在已經存在數據的地方不生成。 或者在跳過現有表的部署或構建腳本中,等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.