時(shí)間:2024-02-13 10:23作者:下載吧人氣:27
在生產(chǎn)環(huán)境下,有時(shí)公司客服反映網(wǎng)頁(yè)半天打不到,除了在瀏覽器按F12的Network響應(yīng)來(lái)排查,確定web服務(wù)器無(wú)故障后。就需要檢查數(shù)據(jù)庫(kù)是否有出現(xiàn)阻塞
當(dāng)時(shí)數(shù)據(jù)庫(kù)的生產(chǎn)環(huán)境中主表數(shù)據(jù)量超過(guò)2000w,子表數(shù)據(jù)量超過(guò)1億,且更新和新增頻繁。再加上做了同步鏡像,很消耗資源。
這時(shí)就要新建一個(gè)會(huì)話,大概需要了解以下幾點(diǎn):
查詢阻塞的方法有很多。有sql 2000 的sp_lock, 有sql 2005及以上的dmv
執(zhí)行 exec sp_lock
下面列下關(guān)鍵字段
spid 是指進(jìn)程ID,這個(gè)過(guò)濾掉了系統(tǒng)進(jìn)程,只展示了用戶進(jìn)程spid>50。
dbid 指當(dāng)前實(shí)例下的哪個(gè)數(shù)據(jù)庫(kù) , 使用DB_NAME() 函數(shù)來(lái)標(biāo)識(shí)數(shù)據(jù)庫(kù)
type 請(qǐng)求鎖住的模式
mode 鎖的請(qǐng)求狀態(tài)
總結(jié):當(dāng)mode 不為GRANT狀態(tài)時(shí), 需要了解當(dāng)前鎖的模式,以及通過(guò)進(jìn)程ID查找當(dāng)前sql 語(yǔ)句
例如當(dāng)前進(jìn)程ID是416,且mode狀態(tài)為WAIT 時(shí),查看方式 DBCC INPUTBUFFER(416)
用sp_lock查詢顯示的信息量很少,也很難看出誰(shuí)被誰(shuí)阻塞。所以當(dāng)數(shù)據(jù)庫(kù)版本為2005及以上時(shí)不建議使用。
網(wǎng)友評(píng)論