Điểm:0

vấn đề đọc các sự kiện mở rộng XML MSSQL

lá cờ cn

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?

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.