SQL Server 2012 扩展事件(1)XE向导

SQL Server 2008新增了一个新的技术:扩展事件(Extended Event)。这个技术为诊断SQL Server故障时捕获内部信息提供了一种全新的方法。SQL Server在未来的版本中将使用扩展事件替代SQL Server Profiler。

  SQL Server 2012特地为此提供了一个查看器。下面我们将通过这个扩展事件查看器(Extended Event Profiler)创建一个捕获。 

 

1、创建一个扩展事件捕获

  打开SSMS,展开“管理”、“扩展事件”、“会话”。在右键菜单中选择“新建会话向导”。 

161649464.png

 

2、通过向导创建会话

134806103.png

  输入会话名称。

134806431.png

 

  使用“查询批处理跟踪”会话模板。

wKiom1SSjMfCg_CtAAIfqpB_Aag523.jpg

 

  单击“类别”标题栏右侧的下拉按钮,去除“全部”前面的选择,然后选择“Excution”。在左侧列表中选择“rpc_starting”,并将其添加到右侧列表。

134806643.png

 

  选择“sql-text”字段。

134807249.png

 

  依次选择“字段”、“运行符”、“值”标题栏右侧的下拉按钮,添加一个筛选器,把系统事件排除掉。

134807695.png

134807691.png

134807701.png

134807817.png

 

3、在屏幕上进行监视

  将sql_text列添加到显示窗口。

135040280.png

135041682.png


通过扩展事件还可以查看的更详细的事件信息。

wKiom1SSn1ejZEMMAAKJc3RPihQ551.jpg 


4、查看脚本

135132927.png

 

CREATE EVENT SESSION [TestTrace] ON SERVER 

ADD EVENT sqlserver.error_reported(

    ACTION(sqlserver.client_app_name,sqlserver.database_id,sqlserver.query_hash,sqlserver.session_id,sqlserver.sql_text)

    WHERE ([package0].[greater_than_uint64]([sqlserver].[database_id],(4)) AND [package0].[equal_boolean]([sqlserver].[is_system],(0)) AND [package0].[not_equal_boolean]([sqlserver].[is_system],(1)))),

ADD EVENT sqlserver.rpc_completed(

    ACTION(sqlserver.client_app_name,sqlserver.database_id,sqlserver.query_hash,sqlserver.session_id,sqlserver.sql_text)

    WHERE ([package0].[greater_than_uint64]([sqlserver].[database_id],(4)) AND [package0].[equal_boolean]([sqlserver].[is_system],(0)) AND [package0].[not_equal_boolean]([sqlserver].[is_system],(1)))),

ADD EVENT sqlserver.rpc_starting(

    ACTION(sqlserver.sql_text)

    WHERE ([package0].[not_equal_boolean]([sqlserver].[is_system],(1)))),

ADD EVENT sqlserver.sql_batch_completed(

    ACTION(sqlserver.client_app_name,sqlserver.database_id,sqlserver.query_hash,sqlserver.session_id,sqlserver.sql_text)

    WHERE ([package0].[greater_than_uint64]([sqlserver].[database_id],(4)) AND [package0].[equal_boolean]([sqlserver].[is_system],(0)) AND [package0].[not_equal_boolean]([sqlserver].[is_system],(1)))) 

ADD TARGET package0.ring_buffer

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=ON,STARTUP_STATE=OFF)

GO 

 

 

5、停止会话

135003388.png

135003483.png

 

6、 查看会话的属性

  在会话的右键菜单中选择“属性”,查看此会话的属性信息。

172947406.png

 


本文出自 “我们一起追过的MSSQL” 博客,谢绝转载!

你可能感兴趣的:(sql,扩展事件)