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