0

尝试在 SQL Server 2008 中创建扩展事件以捕获被阻止的进程报告。这是我正在使用的脚本:

CREATE EVENT SESSION [IA_BlockedProcesses] ON SERVER
ADD EVENT sqlserver.blocked_process_report(
ACTION(sqlserver.client_app_name,
            sqlserver.client_hostname,
            sqlserver.database_name)),
ADD EVENT sqlserver.xml_deadlock_report (
ACTION(sqlserver.client_app_name,
            sqlserver.client_hostname,
            sqlserver.database_name))
ADD TARGET package0.asynchronous_file_target
(SET filename = N'c:\Isaac\blocked_process.xel',
    metadatafile = N'c:\Isaac\blocked_process.xem',
    max_file_size = (65536),
    max_rollover_files = 5)
WITH (MAX_DISPATCH_LATENCY = 5SECONDS)
GO

当我运行脚本时,我得到了这个错误:

消息 25623,级别 16,状态 1,第 7 行
事件名称“sqlserver.blocked_process_report”无效,或找不到对象

我相信要么我没有正确处理这个问题,要么blocked_process_report在这个版本的 SQL Server 中不可用。

当我运行此查询时:

SELECT * 
FROM sys.dm_xe_objects 
WHERE name = 'blocked_process_report' 

...没有结果。

谁能确定地为我确认 A)blocked_process_report 是否确实在 SQL Server 2008 中可用,以及 B)如果我的上述代码需要更改?

提前致谢

4

1 回答 1

0

模组 - 请将此作为副本关闭。

在我发布这个之后,我能够找到这个:

sys.dm_xe_objects 中缺少扩展事件阻止进程报告

看起来被阻止的进程报告直到 SQL Server 2012 才被添加为可跟踪事件。

谢谢

于 2018-01-24T21:55:55.313 回答