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

首頁 > 開發 > 綜合 > 正文

[翻譯]:SQL死鎖-死鎖排除

2024-07-21 02:50:42
字體:
來源:轉載
供稿:網友
[翻譯]:SQL死鎖-死鎖排除

As we already saw, the reasons why we have blocking issues and deadlocks in the system are PRetty much the same. They occur because of non-optimized queries. So, not surprisingly, troubleshooting techniques are very similar. Let’s have a quick look. We’ll use the same scripts I used last time.

我們現在已經知道,造成系統阻塞以及死鎖的原因往往非常相似,基本都是因為使用了未經過優化的查詢造成的。所以排解這些問題的技術非常相似就不那么意外了。讓我們仔細來看一看實例,還是用我們以前采用過的腳本。

The simplest approach is to use SQL Profiler. There is “Deadlock graph” event in the “Locks” event group you can use. Click on the picture to open it in the different window.

最簡單的方法就是采用SQL自帶的性能監控工具,這里我們可以使用跟蹤屬性下面的事件選擇項卡,展開鎖節點,下面的有一個死鎖圖可供我們選擇,它能幫忙我們分析死鎖原因。

Let’s start the trace and trigger deadlock.

現在我們開始跟蹤以及觸發死鎖

As you can see, it shows you very nice picture. There are 2 sessions (ovals) involved. Those sessions compete for the page locks (squares). You can see what locks each session held and you can even track it down to the resources (but that rarely needed). You can even see the statements when you move the mouse over the session oval and wait for the tool tip.

上面是呈現的是一個非常友好的圖,圖中包含兩個會話(圖中橢圓顯示)。這兩個會話都會競爭數據頁(圖中方塊顯示)上的鎖。你可以看到每個會話已經獲得的鎖而且你還可以向下一直跟蹤到它們各自所引用的資源(這是非常必要的),甚至你能跟蹤到具體的SQL語句塊當你將鼠標放在會話的上方時系統會給出相應的提示。

In context menu for “deadlock graph” line in the grid above, you have “Extract event data” menu command that can save this information as the file.

在監視窗口中有一個死鎖圖的字樣,你可以點擊右鍵,此時會彈出屬性菜單,你可以將這些死鎖相關的信息保存到文件中。

You can open it as the graph in management studio or, technically, simply look at xml which is extremely familiar:

你可以在SQL管理器中打開它,或者直接以XML形式查看也非常眼熟。

As you can see it’s way more detailed in compare with graphical representation. It’s also extremely familiar with blocking process report – and you can use same technique and query sys.dm_exec_sql_text if you need to obtain sql text from handle. I demonstrated how to do that in post related with blocking troubleshooting.

這是和圖形方式非常詳細的一個比較說明,它和blocking process report非常相似。你可以同樣通過查詢sys.dm_exec_sql_text來顯示你需要知道的SQL語句。我之前已經做了一個演示的實例。[翻譯]:SQL死鎖-阻塞探測

In case, if you don’t want to use SQL Profiler, there are 2 options you can use. The first one is enabling trace flag 1222 with DBCC TRACEON(1222,-1) command. When you have it enabled, SQL Server put deadlock graph XML to SQL Server log.

如果你不想使用SQL自帶的性能監測工具,這里還有兩種辦法。第一就是運行DBCC TRACEON(1222,-1)命令,它將會把死鎖相關的信息存儲為SQL日志。

Another option is using extended events (SQL Server 2008/2008R2). Again, it’s very powerful method although requires some initial work to set it up. As with the blocking, I’m leaving it out of scope for now.

另外一個方法就是使用在SQL SERVER 2008/2008R2中的擴展事件。它是一個非常強的工具,但需要一些初始化的工作。

How to deal with deadlocks? Of course, the best thing is not to have deadlocks at the first place. Again, golden rule is to optimize the queries. Meanwhile, if you need to control (up to degree) what session will be terminated, you can use SET DEADLOCK PRIORITY option. There are 21 priority levels available. When 2 sessions deadlocked, the session with the lower deadlock priority level would be chosen as the victim. In case of the same priority level (default case), SQL Server chooses the session that is less expensive to rollback.

如何解決死鎖?當然,最好的辦法就是避免出現死鎖,解決死鎖的黃金準則就是優化查詢。同時,如果你想監控哪一個會話可能會被終止,你可以使用SET DEADLOCK PRIORITY這個選項。這里有21種有效的優先級別。當有兩個會話出現死鎖后,級別低的會話將會成為競爭中的犧牲品。如果兩個會話擁有相同的級別,那么SQL會選擇一個回滾付出代價比較小的一個做為犧牲品。

If session is chosen as the victim, it would be aborted with error code 1205. In such case client (or T-SQL code) can catch the exception and re-run the query. But again, the best way is avoiding deadlocks at the first place.

如果一個會話被選中為犧牲品,那么它會被取消同時拋出的錯誤代碼為1205。系統客戶端可以捕獲到這個錯誤然后重新嘗試執行查詢。但是最好的方法就是想辦法避免出現死鎖。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久精品在线观看| 成人在线中文字幕| 国产精品三级久久久久久电影| 久久久久亚洲精品成人网小说| 久久精品久久精品亚洲人| 亚洲精品电影网站| 97国产一区二区精品久久呦| 国产精品自拍偷拍视频| 国产精品一二三在线| 国产精品爽黄69天堂a| 亚洲精品在线91| 日韩免费精品视频| 亚洲国产日韩欧美在线动漫| 日本久久中文字幕| 国产精品久久久av久久久| 亚洲天堂免费视频| 国产精品中文在线| 91精品久久久久| 亚洲午夜未删减在线观看| 欧美日韩国产麻豆| 日av在线播放中文不卡| 欧美视频专区一二在线观看| 国产日韩专区在线| 欧美老女人在线视频| 日韩专区在线观看| 青青a在线精品免费观看| 日韩av一区在线| 欧美激情喷水视频| 91成人天堂久久成人| 欧美精品激情blacked18| 日韩欧美第一页| 欧美午夜精品在线| 日韩av有码在线| 韩国福利视频一区| 综合激情国产一区| 成人高清视频观看www| 国产欧美精品日韩| 亚洲色图美腿丝袜| 一本色道久久88亚洲综合88| 亚洲乱码av中文一区二区| 最新亚洲国产精品| 国产精品激情av在线播放| 青青草成人在线| 91wwwcom在线观看| 亚洲自拍另类欧美丝袜| 97久久伊人激情网| 久久99久久99精品中文字幕| 中文字幕日韩综合av| 久久综合五月天| 国产一区二区三区在线播放免费观看| 日韩大片在线观看视频| 久久99精品国产99久久6尤物| 最近中文字幕2019免费| 97视频在线观看亚洲| 97精品欧美一区二区三区| 国产精品情侣自拍| 欧美日韩视频免费播放| 国产成人精品av在线| 777国产偷窥盗摄精品视频| 久久影院模特热| 亚洲免费电影一区| 日本久久中文字幕| 日本国产一区二区三区| 日韩高清中文字幕| 国产精品免费看久久久香蕉| 亚洲最新视频在线| 国产一区二区香蕉| 日本国产欧美一区二区三区| 欧美日韩激情美女| 97国产真实伦对白精彩视频8| 久久国产精品久久久久久久久久| 国产精品高潮呻吟视频| 国产精品xxxxx| 久久天天躁狠狠躁夜夜躁2014| 国产97在线|日韩| 一区二区日韩精品| 国产91在线高潮白浆在线观看| 国产69久久精品成人看| 国模视频一区二区| 免费不卡在线观看av| 国产+成+人+亚洲欧洲| 国产精品老女人精品视频| 最近中文字幕mv在线一区二区三区四区| 欧美激情视频给我| 欧美激情网站在线观看| 欧美激情在线有限公司| 亚洲va欧美va国产综合久久| 亚洲国产一区二区三区四区| 国产视频久久网| 精品一区二区亚洲| 午夜精品久久久久久久99热浪潮| 欧美劲爆第一页| 日本欧美爱爱爱| 91视频国产高清| 亚洲美女在线观看| 九九热这里只有精品免费看| 国产精自产拍久久久久久| 97精品国产97久久久久久| 亚洲国产精品久久久久秋霞蜜臀| 久久久久国产视频| 国产网站欧美日韩免费精品在线观看| 91深夜福利视频| 亚洲新声在线观看| 最近2019年手机中文字幕| 国产精品爱久久久久久久| 亚洲精品国精品久久99热| 欧美性黄网官网| 91久久精品久久国产性色也91| 国产精品9999| 久久99亚洲热视| 亚洲欧美视频在线| 欧美激情一区二区久久久| 久久久999精品免费| 97精品视频在线播放| 久久久精品国产网站| 中文字幕成人在线| 国产性猛交xxxx免费看久久| 97在线视频免费播放| 欧美国产精品人人做人人爱| 这里只有视频精品| 久久天天躁狠狠躁夜夜av| 欧美激情高清视频| 日韩av影片在线观看| 精品在线小视频| 亚洲最大福利视频网站| 中文字幕欧美日韩精品| 亚洲国产一区二区三区在线观看| 国产成人一区二区| 精品视频在线播放色网色视频| 亚洲人成电影网站色| 欧美巨乳美女视频| 97精品国产97久久久久久春色| 欧美最近摘花xxxx摘花| 国产精品亚洲视频在线观看| 欧美精品激情blacked18| 欧美综合一区第一页| 久久国产天堂福利天堂| 国产精品网站视频| 136fldh精品导航福利| 欧美在线视频免费| 日韩中文在线中文网在线观看| 亚洲精品成人久久久| 夜夜嗨av色一区二区不卡| 日韩黄色在线免费观看| 欧美午夜美女看片| 亚洲天堂男人的天堂| 久久久久久午夜| 亚洲欧美制服综合另类| 国产日产欧美精品| 亚洲激情视频在线播放| 久久天天躁狠狠躁夜夜躁2014| 国产精品99一区| 91干在线观看| 欧洲成人在线视频| 日韩在线视频导航| 欧美日韩高清在线观看| 欧美电影在线观看| 久久国产精品久久久| zzjj国产精品一区二区| 一区二区三区久久精品| 国产精品久久久久久久久免费| 日韩精品免费在线| 亚洲成人激情视频| 亚洲一区二区三区乱码aⅴ|