亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

MSSQL產(chǎn)生死鎖的根本原因及解決方法

2024-08-31 01:03:47
字體:
供稿:網(wǎng)友
死鎖是指兩個或兩個以上的進程在執(zhí)行過程中,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外力作用,它們都將無法推進下去.此時稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠在互相等的進程稱為死鎖進程
 

一、 什么是死鎖

死鎖是指兩個或兩個以上的進程在執(zhí)行過程中,因爭奪資源而造成的一種互相等待的現(xiàn)象,若無外力作用,它們都將無法推進下去.此時稱系統(tǒng)處于死鎖狀態(tài)或系統(tǒng)產(chǎn)生了死鎖,這些永遠在互相等的進程稱為死鎖進程.

二、 死鎖產(chǎn)生的四個必要條件

•互斥條件:指進程對所分配到的資源進行排它性使用,即在一段時間內(nèi)某資源只由一個進程占用。如果此時還有其它進程請求資源,則請求者只能等待,直至占有資源的進程用畢釋放

•請求和保持條件:指進程已經(jīng)保持至少一個資源,但又提出了新的資源請求,而該資源已被其它進程占有,此時請求進程阻塞,但又對自己已獲得的其它資源保持不放

•不剝奪條件:指進程已獲得的資源,在未使用完之前,不能被剝奪,只能在使用完時由自己釋放

•環(huán)路等待條件:指在發(fā)生死鎖時,必然存在一個進程——資源的環(huán)形鏈,即進程集合{P0,P1,P2,···,Pn}中的P0正在等待一個P1占用的資源;P1正在等待P2占用的資源,……,Pn正在等待已被P0占用的資源

這四個條件是死鎖的必要條件,只要系統(tǒng)發(fā)生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發(fā)生死鎖。

三、 如何處理死鎖

1) 鎖模式

1.共享鎖(S)

由讀操作創(chuàng)建的鎖,防止在讀取數(shù)據(jù)的過程中,其它事務(wù)對數(shù)據(jù)進行更新;其它事務(wù)可以并發(fā)讀取數(shù)據(jù)。共享鎖可以加在表、頁、索引鍵或者數(shù)據(jù)行上。在SQL SERVER默認隔離級別下數(shù)據(jù)讀取完畢后就會釋放共享鎖,但可以通過鎖提示或設(shè)置更高的事務(wù)隔離級別改變共享鎖的釋放時間。

2.獨占鎖(X)

對資源獨占的鎖,一個進程獨占地鎖定了請求的數(shù)據(jù)源,那么別的進程無法在此數(shù)據(jù)源上獲得任何類型的鎖。獨占鎖一致持有到事務(wù)結(jié)束。

3.更新鎖(U)

更新鎖實際上并不是一種獨立的鎖,而是共享鎖與獨占鎖的混合。當SQL SERVER執(zhí)行數(shù)據(jù)修改操作卻首先需要搜索表以找到需要修改的資源時,會獲得更新鎖。

更新鎖與共享鎖兼容,但只有一個進程可以獲取當前數(shù)據(jù)源上的更新鎖,

其它進程無法獲取該資源的更新鎖或獨占鎖,更新鎖的作用就好像一個序列化閥門(serialization gate),將后續(xù)申請獨占鎖的請求壓入隊列中。持有更新鎖的進程能夠?qū)⑵滢D(zhuǎn)換成該資源上的獨占鎖。更新鎖不足以用于更新數(shù)據(jù)—實際的數(shù)據(jù)修改仍需要用到獨占鎖。對于獨占鎖的序列化訪問可以避免轉(zhuǎn)換死鎖的發(fā)生,更新鎖會保留到事務(wù)結(jié)束或者當它們轉(zhuǎn)換成獨占鎖時為止。

4. 意向鎖(IX,IU,IS)

意向鎖并不是獨立的鎖定模式,而是一種指出哪些資源已經(jīng)被鎖定的機制。

如果一個表頁上存在獨占鎖,那么另一個進程就無法獲得該表上的共享表鎖,這種層次關(guān)系是用意向鎖來實現(xiàn)的。進程要獲得獨占頁鎖、更新頁鎖或意向獨占頁鎖,首先必須獲得該表上的意向獨占鎖。同理,進程要獲得共享行鎖,必須首先獲得該表的意向共享鎖,以防止別的進程獲得獨占表鎖。

5. 特殊鎖模式(Sch_s,Sch_m,BU)

SQL SERVER提供3種額外的鎖模式:架構(gòu)穩(wěn)定鎖、架構(gòu)修改鎖、大容量更新鎖。

6.轉(zhuǎn)換鎖(SIX,SIU,UIX)

轉(zhuǎn)換鎖不會由SQL SERVER 直接請求,而是從一種模式轉(zhuǎn)換到另一種模式所造成的。SQL SERVER 2008支持3種類型的轉(zhuǎn)換鎖:SIX、SIU、UIX.其中最常見的是SIX鎖,如果事務(wù)持有一個資源上的共享鎖(S),然后又需要一個IX鎖,此時就會出現(xiàn)SIX。

7.鍵范圍鎖

鍵范圍鎖是在可序列化隔離級別中鎖定一定范圍內(nèi)數(shù)據(jù)的鎖。保證在查詢數(shù)據(jù)的鍵范圍內(nèi)不允許插入數(shù)據(jù)。

 

SQL SERVER 鎖模式

縮寫

鎖模式

說明

S

Shared

允許其他進程讀取但不能修改鎖定的資源

X

Exclusive

防止別的進程讀取或者修改鎖定資源中的數(shù)據(jù)

U

Update

防止其它進程獲取更新鎖或獨占鎖;在搜索要修改的數(shù)據(jù)時使用

IS

Intent shared

表示該資源的一個組件被共享鎖鎖定了。只有在表或頁級別才能獲得這類鎖

IU

Intent update

表示該資源的一個組件被更新鎖鎖定了。只有在表或頁級別才能獲得這類鎖

IX

Intent exclusive

表示該資源的一個組件被獨占鎖鎖定了。只有在表或頁級別才能獲得這類鎖

SIX

Shared with intent exclusive

表示一個正持有共享鎖的資源還有一個組件(一頁或一行)被獨占鎖鎖定了

SIU

Shared with intent Update

表示一個正持有共享鎖的資源還有一個組件(一頁或一行)被更新鎖鎖定了

UIX

Update with intent exclusive

表示一個正持有更新鎖的資源還有一個組件(一頁或一行)被獨占鎖鎖定了

Sch-S

Schema stability

表示一個使用該表的查詢正在被編譯

Sch-M

Schema modification

表示表的結(jié)構(gòu)正在被修改

BU

Bulk Update

在一個大容量復(fù)制操作將數(shù)據(jù)導(dǎo)入表中并且(手動或自動)應(yīng)用了TABLOCK查

詢提示時使用

 

2) 鎖粒度

SQL SERVER 可以在表、頁、行等級別鎖定用戶的數(shù)據(jù)資源即非系統(tǒng)資源(系統(tǒng)資源是用閂鎖來保護的)。此外SQL SERVER 還可以鎖定索引鍵和索引鍵范圍。

通過sys.dm_tran_locks視圖可以查看誰被鎖定了(如行,鍵,頁)、鎖的模式以及特定資源的標志符。基于sys.dm_tran_locks視圖創(chuàng)建如下視圖用于查看鎖定的資源以及鎖模式(通過這個視圖可以查看事務(wù)鎖定的表、頁、行以及加在數(shù)據(jù)資源上的鎖類型)。

CREATE VIEW dblocks AS SELECT request_session_id AS spid, DB_NAME(resource_database_id) AS dbname, CASE WHEN resource_type='object' THEN OBJECT_NAME(resource_associated_entity_id) WHEN resource_associated_entity_id=0 THEN 'n/a' ELSE OBJECT_NAME(p.object_id) END AS entity_name, index_id, resource_type AS RESOURCE, resource_description AS DESCRIPTION, request_mode AS mode, request_status AS STATUS FROM sys.dm_tran_locks t LEFT JOIN sys.partitions p ON p.partition_id=t.resource_associated_entity_id WHERE resource_database_id=DB_ID()

3) 如何跟蹤死鎖

通過選擇sql server profiler 事件中的如下選項就可以跟蹤到死鎖產(chǎn)生的相關(guān)語句。

4) 死鎖案例分析

在該案例中process65db88, process1d0045948為語句1的進程,process629dc8 為語句2的進程; 語句2獲取了1689766頁上的更新鎖,在等待1686247頁上的更新鎖;而語句1則獲取了1686247頁上的更新鎖在等待1689766頁上的更新鎖,兩個語句等待的資源形成了一個環(huán)路,造成死鎖。

5) 如何解決死鎖

針對如上死鎖案例,分析其對應(yīng)語句執(zhí)行計劃如下:

通過執(zhí)行計劃可以看出,在查找需要更新的數(shù)據(jù)時使用的是索引掃描,比較耗費性能,這樣就造成鎖定資源時間過長,增加了語句并發(fā)執(zhí)行時產(chǎn)生死鎖的概率。

處理方式:

1. 在表上建立一個聚集索引。

2. 對語句更新的相關(guān)字段建立包含索引。

優(yōu)化后該語句執(zhí)行計劃如下:

優(yōu)化后的執(zhí)行計劃使用了索引查找,將大幅提升該查詢語句的性能,降低了鎖定資源的時間,同時也減少了鎖定資源的范圍,這樣就降低了鎖資源循環(huán)等待事件發(fā)生的概率,對于預(yù)防死鎖的發(fā)生會有一定的作用。

死鎖是無法完全避免的,但如果應(yīng)用程序適當處理死鎖,對涉及的任何用戶及系統(tǒng)其余部分的影響可降至最低(適當處理是指發(fā)生錯誤1205時,應(yīng)用程序重新提交批處理,第二次嘗試大多能成功。一個進程被殺死,它的事務(wù)被取消,它的鎖被釋放,死鎖中涉及到的另一個進程就可以完成它的工作并釋放鎖,所以就不具備產(chǎn)生另一個死鎖的條件了。)

四、 如何預(yù)防死鎖

阻止死鎖的途徑就是避免滿足死鎖條件的情況發(fā)生,為此我們在開發(fā)的過程中需要遵循如下原則:

1.盡量避免并發(fā)的執(zhí)行涉及到修改數(shù)據(jù)的語句。

2.要求每一個事務(wù)一次就將所有要使用到的數(shù)據(jù)全部加鎖,否則就不允許執(zhí)行。

3.預(yù)先規(guī)定一個加鎖順序,所有的事務(wù)都必須按照這個順序?qū)?shù)據(jù)執(zhí)行封鎖。如不同的過程在事務(wù)內(nèi)部對對象的更新執(zhí)行順序應(yīng)盡量保證一致。

4.每個事務(wù)的執(zhí)行時間不可太長,對程序段的事務(wù)可考慮將其分割為幾個事務(wù)。在事務(wù)中不要求輸入,應(yīng)該在事務(wù)之前得到輸入,然后快速執(zhí)行事務(wù)。

5.使用盡可能低的隔離級別。

6.數(shù)據(jù)存儲空間離散法。該方法是指采用各種手段,將邏輯上在一個表中的數(shù)據(jù)分散的若干離散的空間上去,以便改善對表的訪問性能。主要通過將大表按行或者列分解為若干小表,或者按照不同的用戶群兩種方法實現(xiàn)。

7.編寫應(yīng)用程序,讓進程持有鎖的時間盡可能短,這樣其它進程就不必花太長的時間等待鎖被釋放。



注:相關(guān)教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
一区二区三区网站| 搞黄网站免费观看| 亚洲图片在线视频| 久久久久无码国产精品不卡| 中文字幕在线观看高清| 岛国精品在线观看| 91成人小视频| 亚洲全黄一级网站| 穿情趣内衣被c到高潮视频| 玖玖爱免费视频| 日韩一二三四区| 欧美高清视频在线观看mv| 婷婷久久综合九色综合伊人色| 欧美牲交a欧美牲交aⅴ免费真| 男男做爰猛烈叫床爽爽小说| 日韩国产精品毛片| 日韩精品乱码免费| 亚洲精品国产精品久久清纯直播| 欧美韩日一区二区三区| 久久r热视频| 伦伦影院午夜理论片| 日本一区二区三区免费乱视频| 亚洲激情在线播放| japan乱配videos老少配| 成人免费一区二区三区在线观看| 97免费视频在线播放| 国产日韩一区| av小说在线| 国产三级按摩推拿按摩| 在线三级电影| 亚洲中文一区二区| 久久久免费视频网站| 曰韩精品一区二区| 人妻av一区二区三区| 久久无码人妻一区二区三区| 久久久青草婷婷精品综合日韩| 欧美日韩综合视频| 草草影院第一页| 噜噜噜在线观看播放视频| 日本在线视频一区二区| 亚洲欧美日韩天堂| 香港三级日本三级a视频| 青春草在线视频免费观看| 久久99蜜桃| 日韩一区二区三区四区五区六区| 久久精品人人做人人综合| 欧美日韩视频精品一区二区| 特级全黄一级毛片| 国产香蕉视频在线观看| 狠狠操狠狠色| 日韩在线观看视频一区二区| 日本熟妇毛耸耸xxxxxx| 欧美人与物videos| 成年女人色毛片免费| 国产一区二区视频在线播放| 欧美乱大交xxxxx潮喷l头像| 免费一级电影| 国产精品极品| 最近免费中文字幕视频2019| 亚洲综合欧美在线| 欧美色图欧美色图| 黄色高清无遮挡| 色偷偷精品视频在线播放| 日本免费不卡| 亚洲人成毛片在线播放| 亚洲爆乳无码精品aaa片蜜桃| 可以看污的网站| 国产又黄又大久久| www.日韩不卡电影av| 久久66热re国产毛片基地| 免费观看成人毛片| 91福利国产成人精品播放| 怡红院av一区二区三区| 日韩精品一级中文字幕精品视频免费观看| 男人天堂亚洲| 色中文字幕在线| 久久夜夜操妹子| 两根大肉大捧一进一出好爽视频| 欧美一区二区在线免费观看| 亚洲天堂视频在线| 欧美巨胸大乳hitomi| 蜜桃av.网站在线观看| 激情综合中文娱乐网| 久久精品成人一区二区三区蜜臀| 国产一区二区三区小说| 精品成人免费自拍视频| 亚洲欧美日韩精品久久| 日本免费在线视频观看| 亚洲免费视频中文字幕| 欧美性猛交xxxx免费看久久久| 国产欧美一区二区三区另类精品| 国产综合精品一区二区三区| 少妇真人直播免费视频| 国产精品资源站| 国产午夜久久| 久久久久久久午夜| 欧美videos粗暴| 中文在线a天堂| 亚洲国产精品一区二区尤物区| 亚洲偷熟乱区亚洲香蕉av| 99国产精品99久久久久久粉嫩| 免费电影视频在线看| 日韩欧美国产精品一区| 狠狠噜天天噜日日噜| 成人一区二区三区中文字幕| 久久久久国产免费免费| 国产男男gay体育生白袜| 97精品国产97久久久久久免费| 永久免费毛片在线播放不卡| 五月天婷亚洲天综合网精品偷| 亚洲性猛交xxxx乱大交| 三级黄色片免费观看| 日韩一区二区精品葵司在线| 果冻天美麻豆一区二区国产| 免费看黄裸体一级大秀欧美| 日韩午夜精品视频| a天堂中文在线观看| 粉嫩欧美一区二区三区| 一本色道亚洲精品aⅴ| 色婷婷一区二区三区四区| 久久国产视频精品| 国产精品资源站在线| 国产精品欧美经典| 色老头一区二区| 影音先锋国产在线资源| 狠狠狠综合7777久夜色撩人| 日韩中字在线观看| 精品国产无码一区二区| 国产欧美久久久精品免费| 国产美女视频免费观看下载软件| 不卡影院一区二区| 理论视频在线观看| 69久久精品| 免费日韩精品中文字幕视频在线| 污污网站免费在线观看| 亚洲精品久久久久久无码色欲四季| 伊人久久久久久久久| 欧美xxxx三人交性视频| 男人的天堂官网| 成人国产精品一级毛片视频| 亚洲天堂偷拍| 91九色91蝌蚪| 久久精品在线免费观看| 三级欧美在线一区| 精品国产一区二区三区久久| 亚洲国产婷婷香蕉久久久久久| 精品电影一区二区三区| 亚洲精品乱码久久久久久蜜桃91| 亚洲美女免费视频| 波多野结衣在线观看一区二区三区| 97超碰人人在线| 欧美视频在线视频| 无码一区二区三区视频| 欧美黄色网页| 日本精品中文字幕| 久久久成人影院| 97精品人妻一区二区三区香蕉| 成人三级视频| 草莓视频丝瓜在线观看丝瓜18| 狠狠躁夜夜躁人人躁婷婷91| 欧美性xxxxx极品视频| 国产乱人伦精品一区二区在线观看| 日韩午夜视频在线| 久久蜜臀精品av| 亚洲丝袜av一区| 亚洲国产一区二区三区在线播放| 国产成人激情视频| 欧美高清视频一区二区三区| 亚洲免费专区| 99国产揄拍国产精品| 精品小视频在线观看| 欧美性色黄大片| 91高跟黑色丝袜呻吟在线观看| 人人干视频在线| 国产精品久久久久久久久夜色| 欧美日韩国产免费观看视频| 欧美黄色免费| 日韩欧美精品一区二区| 性猛交富婆╳xxx乱大交一| 成人免费一区二区三区牛牛| 国产人妻黑人一区二区三区| 在线天堂中文字幕| 99在线精品观看| 亚洲一二三区不卡| 日韩亚洲欧美精品| 国产aⅴ夜夜欢一区二区三区| 亚洲午夜久久久久| 国产又粗又猛又爽又黄的网站| 久久人人97超碰精品888| 国产视频一区二| 成熟的女同志hd| 亚洲区免费视频| 中文字幕在线播放一区| 国产一区二区三区黄网站| 日韩成人伦理| 男男成人高潮片免费网站| 亚洲91在线| 人成免费在线视频| 精品人伦一区二区三区蜜桃网站| 九九热这里只有| 亚洲妇熟xx妇色黄蜜桃| 欧美专区亚洲专区| 亚洲国产裸拍裸体视频在线观看乱了中文| 久久精品无码一区二区三区毛片| 99热免费在线| 精品成人一区二区三区免费视频| 精品无码久久久久久久| 在线观看a网站| 亚洲先锋影音| 成熟人妻av无码专区| 国产精品99久久免费| 国产清纯在线一区二区www| 国产精品久久久久久久一区二区| 免费观看又污又黄在线观看国产| h网站在线免费观看| 阿v视频在线| 欧美图片一区二区| av黄色免费| 男人的天堂成人在线| 国产在线视频一区| 亚洲人成网站在线播放2019| 欧美不卡视频在线观看| gogogo影视剧免费观看在线观看| 午夜免费福利网站| ga∨成人网| 国产三级三级在线观看| 亚洲精品永久免费| 精品免费国产一区二区| 欧美蜜桃一区二区三区| а√天堂资源地址在线下载| 日韩av三级在线| 国产又白又嫩又紧又爽18p| 96sao精品免费视频观看| 日韩精品视频在线| 国产一区激情| 日韩欧美精品一区二区综合视频| 国产精品自拍在线观看| 国产精品男人爽免费视频1| 日日摸夜夜爽人人添| 国产成人精品久久二区二区| 无码人妻丰满熟妇啪啪网站| 综合亚洲色图| 亚洲最大视频网| 免费一级片网址| 黄色动漫免费看| 国产在线观看www| 都市激情亚洲欧美| 国产一区二区香蕉| 日本蜜桃在线观看视频| 国产综合色在线视频区| 青青草观看免费视频在线| 性欧美精品男男| 91福利国产成人精品照片| 久久免费视频1| 久久er视频| 中文乱码免费一区二区三区下载| 国产福利一区二区三区| 91丨porny丨蝌蚪视频| 国内精品国产成人国产三级粉色| 一区二区三区免费高清视频| 男人添女人下面高潮视频| 欧美午夜精品理论片a级大开眼界| 久草综合在线视频| 免费成人黄色网| 久久国产中文字幕| 日韩av在线电影| 国产精品久久久精品四季影院| 国产国产国产国产国产国产| 中文字幕国产精品一区二区| 51精品国自产在线| 欧美日韩国产精品自在自线| 国产微拍精品一区| 亚洲人成伊人成综合网久久久| 日韩在线黄色| 最新电影电视剧在线观看免费观看| 久久久五月婷婷| 91精品国产成人www| 国产人成一区二区三区影院| 男人的天堂在线| 亚洲人体大胆视频| 亚洲无av在线中文字幕| 一区二区三区无码高清视频| 国内精品久久久久影院 日本资源| 久久久久xxxx| 美脚恋feet久草欧美| 亚洲精品久久久久久久蜜桃臀| 久久国产亚洲精品无码| 国产精品50p| 成人av集中营| 一区二区日本| 高清国产在线观看| 农村黄色一级片| 青青青在线免费观看| 欧美一区二区三区日韩| 中文字幕av久久| 国产激情小视频| 亚洲欧美在线看| 国产高清www| 在线日韩影院| 亚洲精品自产拍在线观看| 青娱乐精品在线| 日韩电影免费观看高清完整版在线观看| 亚洲国产欧美日本视频| 国产一区二区三区不卡免费观看| 日本电影一区二区在线观看| 日韩av在线播| 高潮在线视频| 中文幕无线码中文字蜜桃| 成人在线免费观看av| 国产成人精品亚洲精品色欲| 一区二区三区中文| ww国产内射精品后入国产| 俺来俺也去www色在线观看| 韩日精品在线| 欧美日韩一区二区三区电影| 亚洲一区二区成人| 亚洲成人av资源| 精品精品国产国产自在线| 99re6在线观看| 熟女视频一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 欧美猛男同性videos| 国产精品密蕾丝袜| 成人午夜一级| 一区二区三视频| 黄色一级视频免费| 电影天堂国产精品| 久久精品免视看国产成人|