Sim*_*wsi 1 sql-server extended-events
在 SQL Server 扩展事件中,是否有任何方法可以将“开始”事件(例如 )rpc_starting与“完成”事件(例如 )链接起来rpc_completed?例如,是否有类似相关 ID 的东西可以唯一标识对 SQL Server 的调用?
我想查询记录的事件,以获取通话的开始时间(来自 )rpc_starting及其持续时间(来自 )rpc_completed。到目前为止,我还没有找到任何方法来唯一链接同一调用的开始和结束。
我认为该request_id操作可能会起作用,但对于我查看过的事件,它似乎显示为 0。
因果跟踪可以为您做到这一点,下面是一个示例:
CREATE EVENT SESSION TestCausality
ON SERVER
ADD EVENT sqlserver.auto_stats,
ADD EVENT sqlserver.sql_batch_completed,
ADD EVENT sqlserver.sql_batch_starting,
ADD EVENT sqlserver.sql_statement_completed,
ADD EVENT sqlserver.sql_statement_recompile,
ADD EVENT sqlserver.sql_statement_starting
ADD TARGET package0.event_file
(SET filename = N'TestCausality')
WITH
(
TRACK_CAUSALITY = ON
);
Run Code Online (Sandbox Code Playgroud)
创建事件后,我运行一个简单的 TSQL 作为示例:
SELECT TOP 10 * FROM dbo.CommandLog
Run Code Online (Sandbox Code Playgroud)
然后,在扩展事件视图的 GUI 中,您可以添加“Attach_Activity_Id.GUID”,这样您就可以将您的语句相互链接。看起来像这样:
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |