麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > SQL Server > 正文

sql server deadlock跟蹤的4種實現方法

2024-08-31 01:05:26
字體:
來源:轉載
供稿:網友

前言

最近寫程序常會遇到deadlock victim,每次一臉懵逼。研究了下怎么跟蹤,寫下來記錄下。文中介紹的非常詳細,對大家具有一定的參考學習價值,下面話不多說了,來一起看看詳細的介紹吧

建測試數據

CREATE DATABASE testdb; GO USE testdb; CREATE TABLE table1(id INT IDENTITY PRIMARY KEY,student_name NVARCHAR(50) ) INSERT INTO table1 values ('James')INSERT INTO table1 values ('Andy')INSERT INTO table1 values ('Sal')INSERT INTO table1 values ('Helen')INSERT INTO table1 values ('Jo')INSERT INTO table1 values ('Wik')  CREATE TABLE table2(id INT IDENTITY PRIMARY KEY,student_name NVARCHAR(50) ) INSERT INTO table2 values ('Alan')INSERT INTO table2 values ('Rik')INSERT INTO table2 values ('Jack')INSERT INTO table2 values ('Mark')INSERT INTO table2 values ('Josh')INSERT INTO table2 values ('Fred')

第一段sql,先運行只更新table1部分

USE testdb; -- Transaction1BEGIN TRAN UPDATE table1SET student_name = student_name + 'Transaction1'WHERE id IN (1,2,3,4,5) UPDATE table2SET student_name = student_name + 'Transaction1'WHERE id = 1 COMMIT TRANSACTION

第二段sql,只運行更新table2部分

USE testdb; -- Transaction2BEGIN TRAN UPDATE table2SET student_name = student_name + 'Transaction2'WHERE id = 1 UPDATE table1SET student_name = student_name + 'Transaction2'WHERE id IN (1,2,3,4,5) COMMIT TRANSACTION

再運行,第一段sql更新table2,運行第二段sql更新table1,死鎖問題重現。

sql,server,deadlock,跟蹤

說下跟蹤死鎖的方法:

1.使用trace log跟蹤,執行如下sql開啟1222和1204 flag,死鎖信息會在sql server 日志中輸出。

DBCC TRACEON (1204, -1)DBCC TRACEON (1222, -1)

下圖是1204輸出的信息

sql,server,deadlock,跟蹤

下圖是1222輸出的信息

sql,server,deadlock,跟蹤

2.使用sql server profiler進行跟蹤

點擊Tools -> sql server profiler 選擇sql locks模板

sql,server,deadlock,跟蹤

運行當發生死鎖時會自動捕獲,點擊dead lock paragraph查看死鎖

sql,server,deadlock,跟蹤

3.使用擴展事件跟蹤,方法只適用于sql server 2012版本,08r2版本無法直接使用。

依次點擊Management -> Extended Events - >system health - >package0.event_file

sql,server,deadlock,跟蹤

輸入deadlock回車,可以點擊details 把內容另存為xdl文件再打開,或點擊deadlock查看圖

sql,server,deadlock,跟蹤

4.使用windows性能計數器檢測到死鎖再去sql中查詢

命令行輸入:perfmon 或者 perfmon /sys

選擇實例:SQL Server :Locks // Number of DeadLocks/sec // _Total

實時查看:

sql,server,deadlock,跟蹤

下面的查詢提供了自從上次重啟以來在本服務器上發生的所有死鎖:

SELECT cntr_value AS NumOfDeadLocks

FROM sys.dm_os_performance_counters

WHERE object_name = 'SQLServer:Locks'

AND counter_name = 'Number of Deadlocks/sec'

AND instance_name = '_Total'

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MSSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精精国产xxxx视频在线播放7 | 91在线视频播放 | 日本欧美一区二区三区在线观看 | 91一区二区三区久久久久国产乱 | 国产一区二区在线免费播放 | 国产午夜精品久久久久婷 | 久草视频福利在线观看 | 91网站在线播放 | 欧美成年人在线视频 | 欧美高清一级片 | 久久精品视频免费观看 | 国产福利视频在线观看 | 91短视频版高清在线观看免费 | 72pao成人国产永久免费视频 | 国产精选久久 | 狠狠干狠狠操 | 欧美a级在线免费观看 | 91精品国产综合久久婷婷香蕉 | 国产精品毛片va一区二区三区 | 日韩av官网 | 久久久在线免费观看 | 亚洲精品免费播放 | 日本高清无遮挡 | 成人三级免费电影 | 国产精品一区二区三区在线播放 | 亚洲一区二区不卡视频 | 欧美黄成人免费网站大全 | 成人毛片在线免费看 | 美女视频网站黄色 | 久久精品中文字幕一区 | h视频免费观看 | 日韩精品中文字幕一区二区 | 久草在线视频看看 | 黄色片在线观看网站 | 欧美一级片在线 | 日韩2区 | 深夜小视频在线观看 | 五月天堂av91久久久 | 亚洲精品tv久久久久久久久久 | 欧美一级淫片免费视频黄 | 手机av免费电影 |