Hiện tại tôi đang tự hỏi liệu ai đó có thể làm sáng tỏ vấn đề tôi đang gặp phải không.
Tôi hiện đang cố gắng sử dụng hướng dẫn này để tìm các Quy trình bị chặn và Bế tắc
https://www.brentozar.com/archive/2014/03/extends-events-doesnt-hard/#comment-3481472
Tôi đã chạy các bước như trong hướng dẫn nên không chắc mình đã làm sai điều gì.
Sau khi thu thập các sự kiện, tôi chạy truy vấn này:
VỚI sự kiện_cte AS (
LỰA CHỌN
xevents.event_data,
DATEADD(mi,
DATEDIFF(mi, GETUTCDATE(), CURRENT_TIMESTAMP),
xevents.event_data.value(
'(sự kiện/@dấu thời gian)[1]', 'datetime2')) AS [thời gian sự kiện] ,
xevents.event_data.value(
'(sự kiện/hành động[@name="client_app_name"]/value)[1]', 'nvarchar(128)')
NHƯ [tên ứng dụng khách],
xevents.event_data.value(
'(sự kiện/hành động[@name="client_hostname"]/value)[1]', 'nvarchar(max)')
NHƯ [tên máy chủ của khách hàng],
xevents.event_data.value(
'(sự kiện[@name="blocked_ process_report"]/data[@name="database_name"]/value)[1]', 'nvarchar(max)')
AS [tên cơ sở dữ liệu],
xevents.event_data.value(
'(sự kiện[@name="blocked_process_report"]/data[@name="database_id"]/value)[1]', 'int')
NHƯ [database_id],
xevents.event_data.value(
'(sự kiện[@name="blocked_ process_report"]/data[@name="object_id"]/value)[1]', 'int')
NHƯ [đối tượng_id],
xevents.event_data.value(
'(sự kiện[@name="blocked_ process_report"]/data[@name="index_id"]/value)[1]', 'int')
NHƯ [index_id],
xevents.event_data.value(
'(sự kiện[@name="blocked_ process_report"]/data[@name="duration"]/value)[1]', 'bigint')/1000
AS [thời lượng (ms)],
xevents.event_data.value(
'(sự kiện[@name="blocked_ process_report"]/data[@name="lock_mode"]/text)[1]', 'varchar')
NHƯ [lock_mode],
xevents.event_data.value(
'(sự kiện[@name="blocked_process_report"]/data[@name="login_sid"]/value)[1]', 'int')
AS [đăng nhập_sid],
xevents.event_data.query(
'(sự kiện[@name="blocked_ process_report"]/data[@name="blocked_ process"]/value/blocked- process-report)[1]')
NHƯ bị chặn_ process_report,
xevents.event_data.query(
'(sự kiện/dữ liệu[@name="xml_report"]/giá trị/bế tắc)[1]')
Bế tắc AS
TỪ sys.fn_xe_file_target_read_file
('C:\temp\XEventSessions\blocked_ process*.xel',
'C:\temp\XEventSessions\blocked_ process*.xem',
null null)
ÁP DỤNG CHÉO (CHỌN CAST(event_data AS XML) AS event_data) dưới dạng xevent
)
LỰA CHỌN
TRƯỜNG HỢP KHIblocked_ process_report.value('(blocked-process-report[@monitorLoop])[1]', 'nvarchar(max)') IS NULL
RỒI 'Bế tắc'
KHÁC 'Quy trình bị chặn'
KẾT THÚC NHƯ Loại báo cáo,
[thời gian sự kiện],
TRƯỜNG HỢP [tên ứng dụng khách] WHEN '' THEN ' -- N/A -- '
KHÁC [tên ứng dụng khách]
KẾT THÚC NHƯ [tên ứng dụng khách],
TRƯỜNG HỢP [tên máy chủ của máy khách] WHEN '' THEN ' -- N/A -- '
KHÁC [tên máy khách]
KẾT THÚC NHƯ [tên máy khách],
[tên cơ sở dữ liệu],
COALESCE(OBJECT_SCHEMA_NAME(object_id, database_id), ' -- N/A -- ') AS [lược đồ],
COALESCE(OBJECT_NAME(object_id, database_id), ' -- N/A -- ') AS [bảng],
chỉ mục_id,
[thời lượng (ms)],
chế độ khóa,
COALESCE(SUSER_NAME(login_sid), ' -- N/A -- ') AS tên người dùng,
TRƯỜNG HỢP KHIblocked_ process_report.value('(blocked-process-report[@monitorLoop])[1]', 'nvarchar(max)') IS NULL
SAU ĐÓ bế tắc_graph
ELSE bị chặn_ process_report
KẾT THÚC NHƯ Báo cáo
TỪ sự kiện_cte
ĐẶT HÀNG THEO [thời gian sự kiện] DESC ;
Nhưng tôi nhận được kết quả này:
Msg 9415, Cấp 16, Trạng thái 1, Dòng 1
Phân tích cú pháp XML: dòng 39, ký tự 109, kiểm tra đúng định dạng: không có '<' trong giá trị thuộc tính
Bất kỳ ý tưởng?