Score:0

ปัญหาในการอ่าน XML Extended-Event MSSQL

ธง cn

ขณะนี้ฉันกำลังสงสัยว่ามีใครสามารถอธิบายปัญหาที่ฉันกำลังประสบอยู่ได้บ้าง

ขณะนี้ฉันกำลังพยายามใช้บทช่วยสอนนี้เพื่อค้นหากระบวนการที่ถูกบล็อกและการหยุดชะงัก https://www.brentozar.com/archive/2014/03/extended-events-doesnt-hard/#comment-3481472 ฉันทำตามขั้นตอนตามที่กล่าวไว้ในบทช่วยสอน ดังนั้นฉันจึงไม่แน่ใจว่าฉันทำอะไรผิด

หลังจากรวบรวมเหตุการณ์ ฉันเรียกใช้แบบสอบถามนี้:

ด้วย events_cte AS (
  เลือก
    xevents.event_data
    DATEADD(ไมล์,
    DATEDIFF(ไมล์ GETUTCDATE() CURRENT_TIMESTAMP)
    xevents.event_data.value(
      '(event/@timestamp)[1]', 'datetime2')) AS [เวลากิจกรรม] ,
    xevents.event_data.value(
      '(เหตุการณ์/การกระทำ[@name="client_app_name"]/value)[1]', 'nvarchar(128)')
      AS [ชื่อแอปไคลเอ็นต์],
    xevents.event_data.value(
      '(เหตุการณ์/การกระทำ[@name="client_hostname"]/value)[1]', 'nvarchar(สูงสุด)')
      AS [ชื่อโฮสต์ไคลเอ็นต์],
    xevents.event_data.value(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="database_name"]/value)[1]', 'nvarchar(สูงสุด)')
      AS [ชื่อฐานข้อมูล],
    xevents.event_data.value(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="database_id"]/value)[1]', 'int')
      AS [database_id],
    xevents.event_data.value(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="object_id"]/value)[1]', 'int')
      AS [object_id],
    xevents.event_data.value(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="index_id"]/value)[1]', 'int')
      AS [index_id],
    xevents.event_data.value(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="duration"]/value)[1]', 'bigint') / 1,000
      AS [ระยะเวลา (มิลลิวินาที)],
    xevents.event_data.value(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="lock_mode"]/text)[1]', 'varchar')
      AS [โหมดล็อค]
    xevents.event_data.value(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="login_sid"]/value)[1]', 'int')
      AS [เข้าสู่ระบบ_sid],
    xevents.event_data.query(
      '(เหตุการณ์[@name="blocked_process_report"]/data[@name="blocked_process"]/value/blocked-process-report)[1]')
      เป็น block_process_report,
    xevents.event_data.query(
      '(เหตุการณ์/ข้อมูล[@name="xml_report"]/value/deadlock)[1]')
      AS การล็อกตาย_กราฟ
  จาก sys.fn_xe_file_target_read_file
    ('C:\temp\XEventSessions\blocked_process*.xel',
     'C:\temp\XEventSessions\blocked_process*.xem',
     null, null)
    ใช้ข้าม (เลือก CAST (event_data AS XML) AS event_data) เป็น xevents
)
เลือก
  กรณีที่ block_process_report.value('(blocked-process-report[@monitorLoop])[1]', 'nvarchar(max)') เป็นโมฆะ
       จากนั้น 'การหยุดชะงัก'
       อื่น ๆ 'กระบวนการที่ถูกบล็อก'
       สิ้นสุดเป็นประเภทรายงาน
  [เวลากิจกรรม],
  กรณี [ชื่อแอปไคลเอ็นต์] เมื่อ '' จากนั้น ' -- ไม่มี -- '
                         ELSE [ชื่อแอปไคลเอ็นต์]
                         สิ้นสุดเป็น [แอปไคลเอ็นต์ _name],
  กรณี [ชื่อโฮสต์ไคลเอ็นต์] เมื่อ '' จากนั้น ' -- N/A -- '
                          ELSE [ชื่อโฮสต์ไคลเอ็นต์]
                          สิ้นสุดเป็น [ชื่อโฮสต์ไคลเอ็นต์],
  [ชื่อฐานข้อมูล],
  COALESCE(OBJECT_SCHEMA_NAME(object_id, database_id), ' -- N/A -- ') AS [สกีมา],
  COALESCE(OBJECT_NAME(object_id, database_id), ' -- N/A -- ') AS [ตาราง],
  index_id,
  [ระยะเวลา (มิลลิวินาที)],
  lock_mode,
  COALESCE(SUSER_NAME(login_sid), ' -- N/A -- ') เป็นชื่อผู้ใช้
  กรณีที่ block_process_report.value('(blocked-process-report[@monitorLoop])[1]', 'nvarchar(max)') เป็นโมฆะ
       จากนั้นการล็อกตาย_กราฟ
       อื่น ๆ ถูกบล็อก_กระบวนการ_รายงาน
       สิ้นสุดเป็นรายงาน
จาก events_cte
ORDER BY [เวลากิจกรรม] DESC ;

แต่ฉันได้รับผลลัพธ์นี้:

ข่าวสารเกี่ยวกับ 9415 ระดับ 16 สถานะ 1 บรรทัด 1
การแยกวิเคราะห์ XML: บรรทัดที่ 39, อักขระ 109, การตรวจสอบรูปแบบที่ดี: ไม่มี '<' ในค่าแอตทริบิวต์

ความคิดใด ๆ ?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา