日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQLServer查詢使用鍵查找時(shí)鎖申請(qǐng)及釋放順序

 當(dāng)然看的過程中,其實(shí)自己有個(gè)疑問:

安新網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),安新網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為安新近1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的安新做網(wǎng)站的公司定做!

對(duì)于鍵查找這類查詢,會(huì)申請(qǐng)哪些鎖,鎖申請(qǐng)和釋放的順序是怎樣的?

準(zhǔn)備

備注:測(cè)試表仍然使用高兄文中創(chuàng)建的測(cè)試表testklup

在開始之前,使用dbcc ind 命令先看下測(cè)試表的數(shù)據(jù)組織情況

然后語句執(zhí)行計(jì)劃圖如下:

查看申請(qǐng)了哪些鎖

為了得到查詢會(huì)申請(qǐng)哪些鎖,通過如下這條查詢就可以得到

 
 
 
  1. begin tran 
  2. select cont2 from testklup with(HOLDLOCK) where nlskey=1

在默認(rèn)的事務(wù)隔離級(jí)別下,開啟事務(wù),然后查詢中使用HOLDLOCK提示。HOLDLOCK將共享鎖保留到事務(wù)完成,而不是在相應(yīng)的表、行或數(shù)據(jù)頁不再需要時(shí)就立即釋放鎖。

然后使用DMV視圖sys.dm_tran_locks來查看持有鎖的情況,查詢結(jié)果如下:

從查詢結(jié)果,可以得出申請(qǐng)了如下的鎖:

1)在表object上申請(qǐng)了IS鎖

2)在非聚集索引PAGE上申請(qǐng)了IS鎖

3)在非聚集索引KEY上申請(qǐng)了S鎖

4)在聚集索引的PAGE上申請(qǐng)了IS鎖

5)在聚集索引的KEY上申請(qǐng)了S鎖

查看鎖申請(qǐng)和釋放的順序

我們使用SQL Profiler來跟蹤鎖申請(qǐng)和釋放的事件。模板選擇TSQL-LOCKS,只跟蹤運(yùn)行語句的會(huì)話spid,同時(shí)事件增加Lock:Acquired和Lock:Released。執(zhí)行查詢跟蹤結(jié)果如下:

從上圖可以得出如下信息:

1) 非聚集索引申請(qǐng)的S鎖需等到鍵查找在聚集索引上查找完畢后才釋放。這其實(shí)也是鍵查找導(dǎo)致死鎖發(fā)生的條件

2)鎖申請(qǐng)和釋放的順序有點(diǎn)類似于進(jìn)棧和出棧,先申請(qǐng)的***釋放

3)疑問:為什么沒有鍵查找在聚集索引Key上申請(qǐng)的S鎖記錄呢?鎖肯定是有,但不清楚為什么Profiler沒有記錄到,因?yàn)槲腋櫜樵兗親OLD時(shí),是會(huì)在***申請(qǐng)一個(gè)S鎖的,結(jié)果如下:

小結(jié)

通過本文,我們知道了一個(gè)簡(jiǎn)單的鍵查找查詢會(huì)申請(qǐng)哪些鎖,同時(shí),鎖申請(qǐng)和釋放的順序是怎樣的。在非聚集索引上申請(qǐng)的鎖一直到鍵查找執(zhí)行完畢才會(huì)釋放。


標(biāo)題名稱:SQLServer查詢使用鍵查找時(shí)鎖申請(qǐng)及釋放順序
新聞來源:http://www.5511xx.com/article/djocesj.html