使用SQL Server 扩大事件来成立死锁的年月跟踪

 

SQL Server,步骤8:

概念过滤条件,那里大家忽视那几个设置,点击下一步。

 

SQL Server 1

 

步骤5:

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

 

SQL Server 2

 

步骤1:

因此“Object Explorer”连接到实例,展开“Management”、“Extended
伊芙nts”、“Sessions”。

 

SQL Server 3

 

深远进阶

 

死锁详细新闻还有多少个步骤可用来布局扩大事件来监督死锁。

本人想去切磋其余三个事件来捕获到剖析死锁更详尽的信息。

 

  1. Lock: Deadlock事件类

那一个事件类能够用来讲明死锁就义品。那些事件作证如何时候请求要求一个锁,但被注销作为一个死锁就义品。

 

  1. Lock: Deadlock chain事件类

以此事件类用于监控死锁状态。当有一个死锁时该事件被触发。通过在实例级别监控这么些事件,大家可以辨识这几个对象在死锁中,大家是或不是在应用程序中有死锁导致的习性难点。

 

步骤6:

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

 

SQL Server 4

 

步骤13:

在会话“Deadlock_Monitor”上右键选择启动会话。

 

步骤1:

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

 

SQL Server 5

 

步骤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

 

步骤7:

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

 

SQL Server 6

 

步骤2:

运转此前的死锁示例。

 

 

步骤9:

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

 

SQL Server 7

 

步骤4:

接纳不利用模板(像SQL Server
Profiler模板一样,预设了有些默许选项一起启动,但尚无一个满意我们须求的沙盘),点击下一步。

 

SQL Server 8

 

步骤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

 

步骤15:

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

 

SQL Server 9

 

SQL Server 10

 

SQL Server 11

 

步骤11:

后日大家可以启动捕获,并查看活动数量。

 

SQL Server 12

 

步骤10:

检查有着的配备,点击完毕来安装和启用会话。

 

SQL Server 13

 

咱俩由此SQL Server
2012图形界面来安顿一个恢宏事件跟踪会话。然后可以生成SQL脚本,在2008或2008
R2版本下运行类似的跟踪。

步骤3:

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

 

SQL Server 14

 

SQL Server 15

 

一经有用户举报说他俩在应用程序的荒谬日志里发现了出口了死锁音讯,而且是在半夜三更。大家就足以通晓怎么监督和获得死锁数据了。

步骤3:

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

 

SQL Server 16

 

步骤2:

右键点击“Sessions”,创造一个新的对话向导。

 

相关文章