我们经过SQL Server
二零一二图形界面来布局2个恢弘事件跟踪会话。然后能够生成SQL脚本,在贰零零玖或二〇〇九奥迪Q72版本下运行类似的跟踪。

 

步骤1:

透过“Object Explorer”连接到实例,展开“Management”、“Extended
伊夫nts”、“Sessions”。

 

图片 1

 

步骤2:

右键点击“Sessions”,成立二个新的对话向导。

 

步骤3:

输入会话名称“Deadlock_Monitor”,点击下一步。

 

图片 2

 

步骤4:

分选不行使模板(像SQL Server
Profiler模板一样,预设了部分暗中同意选项一起运营,但不曾3个满意大家必要的模板),点击下一步。

 

图片 3

 

步骤5:

分选要捕获的事件,在“伊芙nt library”输入deadlock,可阅览如下图所示:

 

图片 4

 

步骤6:

选择“xml_deadlock_report”,添加到右手选用的风浪列表中。再单击下一步。

 

图片 5

 

步骤7:

慎选要捕获的列,那里大家选用下一步。

 

图片 6

 

步骤8:

概念过滤条件,这里我们忽视那么些装置,点击下一步。

 

图片 7

 

步骤9:

选料保存数据到文件,设置文件路径和最大值等。点击下一步。

 

图片 8

 

步骤10:

自小编批评有着的计划,点击达成来设置和启用会话。

 

图片 9

 

步骤11:

今日我们得以运行捕获,并查阅活动数量。

 

图片 10

 

步骤12:

在刚刚创立会话“Deadlock_Monitor”上右键点击生成脚本。

 

1
2
3
4
5
CREATE EVENT SESSION [Deadlock_Monitor] ON SERVER
ADD EVENT sqlserver.xml_deadlock_report
ADD TARGET package0.event_file(SET filename=N'D:\MSSQL\DATA\MSSQL11.MSSQLSERVER\MSSQL\Log\Deadlock_Monitor.xel',max_file_size=(256),max_rollover_files=(10))
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=30 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO

 

步骤13:

在会话“Deadlock_Monitor”上右键采纳运行会话。

 

步骤14:

分级在四个查询窗口进行如下语句。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
--Window1
USE AdventureWorks2012
BEGIN TRAN
UPDATE Person.Address SET AddressLine1 = 'New address' WHERE AddressID = 20
WAITFOR DELAY '0:0:10'
SELECT FROM Person.Address WHERE AddressID = 25
  
--Window 2
USE AdventureWorks2012
BEGIN TRAN
UPDATE Person.Address SET AddressLine1 = 'New address' WHERE AddressID = 25
WAITFOR DELAY '0:0:10'
SELECT FROM Person.Address WHERE AddressID = 20

 

步骤15:

在 “Deadlock_Monitor”上的package0.event_file上右键选拔“View Target
Data…”。选用对应timestamp的死锁条目,在Details的xml_report值里体现的正是死锁的XML文件,可双击打开。点击
Deadlock即可看出死锁的图形化浮现。

 

图片 11

 

图片 12

 

图片 13

 

深刻进阶

 

死锁详细音讯还有多少个步骤可用来布署扩张事件来监督死锁。

自家想去商讨此外两个事件来捕获到剖析死锁更详细的音讯。

 

  1. Lock: Deadlock事件类

本条事件类能够用来表明死锁捐躯品。这么些事件作证如哪一天候请求需求三个锁,但被撤消作为3个死锁捐躯品。

 

  1. Lock: Deadlock chain事件类

以此事件类用于监察和控制死锁状态。当有二个死锁时该事件被触发。通过在实例级别监察和控制这些事件,我们能够分辨那么些对象在死锁中,大家是或不是在应用程序中有死锁导致的质量难题。

 

步骤1:

在前头的“Deadlock_Monitor”会话上右键选拔“Properties”。选择“伊夫nts”页,将lock_deadlock和lock_deadlock_chain事件类添加到右边已选拔事件列表。

 

图片 14

 

步骤2:

运维此前的死锁示例。

 

步骤3:

在“Deadlock_Monitor”上的package0.event_file上右键采纳“View Target
Data…”。选拔对应timestamp的死锁条目。

 

图片 15

 

图片 16

 

要是有用户反映说她们在应用程序的荒谬日志里发现了出口了死锁信息,而且是在早上。我们就能够明白怎么监察和控制和获取死锁数据了。

相关文章

网站地图xml地图