上篇說SQL Server應用模式之OLTP系統性能分析。五種角度分析sql性能問題。本章依然是SQL性能 五種角度其一阻塞與死鎖 這里通過連接在sysprocesses里字段值的組合來分析阻塞源頭,可以把阻塞分為以下5種常見的類型(見表)。waittype,open_tran,status,都是sy
上篇說SQL Server應用模式之OLTP系統性能分析。五種角度分析sql性能問題。本章依然是SQL性能 五種角度其一“阻塞與死鎖”
這里通過連接在sysprocesses里字段值的組合來分析阻塞源頭,香港空間,可以把阻塞分為以下5種常見的類型(見表)。waittype,open_tran,status,都是sysprocesses里的值,“自我修復?”列的意思,就是指阻塞能不能自動消失。
5種常見的阻塞類型
類型 waittype open_tran status 自我修復 原因/其他特征
1 不為0 >=0 runnable 是的,當語句運行結束后 語句運行的時間比較長,運行時需等待某些系統資源(如硬盤讀寫、CPU或內存等)。
2 0x0000 >0 sleeping 不能,但是如果運行 KILL語句,這個鏈接能夠很容易被終止 可能客戶端遇到了一個語句執行超時,或者主動取消了上一語句的執行,但是沒有回滾開啟的事務,在SQL Trace里能夠看到一個Attention事件
3
0x0000
0x0800
0x0063
>=0
runnable
不能。知道客戶端吧所有結果都主動取走,網站空間,或者主動斷開連接,可以運行KILL語句去終止它,但是可能要花長達30秒
客戶端沒有及時把所有結果都取走,這時可能open_tran=0,事務隔離級別也為默認(READ COMMITTED),但這個連接還會持有鎖資源
4 0x0000 >0 rollback 是的 在SQL Trace里能夠看到這個SPID已經發來了一個Attention事件,說明客戶端已經遇到了超時,或者主動要求回滾事務
5 各種值都有可能 >=0 runnable 不能,直到客戶端取消語句運行或者主動斷開連接。可以運行KILL語句終止它,但是可能要花長達30秒 應用程序運行中產生死鎖,在SQL Server中以阻塞形式體現。Sysprocesses里阻塞和被阻塞的連接hostname值是一樣的
下面詳細介紹這些類型產生的原因,以及解決方法
類型1:由于語句運行時間太長而導致的阻塞,香港服務器租用,語句本身在正常運行中,只須等待某些系統資源。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com