SQL 2005 死鎖:執行追蹤和檢查日誌

SQL 2005 死鎖:執行追蹤和檢查日誌

我們有一個第三方商業應用程序,我們認為它導致我們的 SQL Server 2005(64 位元)電腦上發生死鎖。上週,為了幫助我們更好地管理軟體,我與軟體供應商進行了為期1 & 1/2 天的培訓,現在我正在研究如何最好地使用SQL Server Profiler 和追蹤模板,以充分發揮我的優勢。

我個人的座右銘是“如果您是一個軟體供應商,正在建立一個需要您能夠遠端連接到客戶端伺服器的應用程序,那麼您就做錯了。”不幸的是,我們現在沒有太多選擇。

我對這些人(軟體供應商)了解得越多,我對他們的印象就越少,而我自己也想做更多的「幕後」工作。例如,幾個月來我們一直遇到伺服器速度緩慢的問題 - 但到目前為止,我在系統上完全沒有看到追蹤檔案或追蹤模板檔案。

關於我的問題...

  1. 運行追蹤檔案是否會明顯影響伺服器效能?我的猜測是答案是「視情況而定」。如果是這種情況,那麼這是我在剛剛建立的新追蹤範本上選擇的「事件」:

    • 死鎖圖
    • 鎖:死鎖
    • 鎖:死鎖鏈
    • 遠端過程呼叫:已完成
    • SP:Stmt已完成
    • SQL:批次完成
    • SQL:批次啟動
  2. 是否必須在死鎖實際發生之前運行跟踪,或者我是否能夠在我們注意到性能大幅下降時運行跟踪?

  3. 我現在正在閱讀有關檢查 SQL 日誌的提示和技術,因為這不是我們給予太多關注的事情。當我進入 SQL Server Management Studio、管理和 SQL Server 日誌時,我找不到任何顯示「死鎖」/「死鎖」等內容的內容...所以也許沒有任何內容陷入僵局。有人可以幫我確認死鎖是否會出現在 SQL 日誌中嗎?

答案1

在 SQL Server 上執行追蹤將會影響 SQL Server。基本的經驗法則是,您在伺服器上執行的任何操作都會佔用資源。針對 SQL Server 執行追蹤或 SQL Profiler 是否會導致效能問題?是的,如果您沒有任何過濾,當然可以。

如果您遇到死鎖問題,請打開追蹤標誌 1204 和 1222這會將有關死鎖的資訊輸出到錯誤日誌中。不要一直打開它們,因為它們會影響性能。輸出到錯誤日誌的資訊將告訴您有關死鎖的語句的所有資訊。

答案2

至於執行診斷日誌,例如痕跡,它使用的資源確實比分析器但與往常一樣,答案確實取決於您的伺服器規格以及正常生產期間同時發生的情況。由於您只使用 SQL 2005,我認為硬體有點陳舊,這意味著您應該小心在生產機器上運行它。無論如何,當嘗試半盲目地甚至在全新的盒子上解決問題時,實際上並不建議這樣做。

對於#2,如果您試圖捕獲某些內容,IMO 您應該運行診斷程序,然後執行導致死鎖的原因(假設您將其範圍縮小到應用程序的特定原因或事件類型,或者只是一般應用程序)

不幸的是,對#3 沒有多大幫助。

相關內容