Puncte:0

problemă privind citirea XML a evenimentelor extinse MSSQL

drapel cn

În prezent, mă întrebam dacă cineva ar putea face lumină asupra problemei pe care o am.

În prezent, încerc să folosesc acest tutorial pentru a găsi procese blocate și blocaje https://www.brentozar.com/archive/2014/03/extended-events-doesnt-hard/#comment-3481472 Am parcurs pașii așa cum se spune în tutorial, așa că nu sunt sigur ce am greșit.

După colectarea evenimentelor, rulez această interogare:

WITH events_cte AS (
  SELECTAȚI
    xevents.event_data,
    DATEADD(mi,
    DATEDIFF(mi, GETUTCDATE(), CURRENT_TIMESTAMP),
    xevents.event_data.value(
      „(event/@timestamp)[1]”, „datetime2”)) AS [ora evenimentului] ,
    xevents.event_data.value(
      „(eveniment/acțiune[@name="client_app_name"]/value)[1]', 'nvarchar(128)')
      AS [numele aplicației client],
    xevents.event_data.value(
      „(eveniment/acțiune[@name="client_hostname"]/value)[1]', 'nvarchar(max)')
      AS [nume gazdă client],
    xevents.event_data.value(
      „(eveniment[@name="blocked_process_report"]/data[@name="database_name"]/value)[1]', 'nvarchar(max)')
      AS [numele bazei de date],
    xevents.event_data.value(
      „(eveniment[@name="blocked_process_report"]/data[@name="database_id"]/value)[1]”, „int”)
      AS [database_id],
    xevents.event_data.value(
      „(eveniment[@name="blocked_process_report"]/data[@name="object_id"]/value)[1]”, „int”)
      AS [object_id],
    xevents.event_data.value(
      „(eveniment[@name="blocked_process_report"]/data[@name="index_id"]/value)[1]”, „int”)
      AS [index_id],
    xevents.event_data.value(
      „(eveniment[@name="blocked_process_report"]/data[@name="duration"]/value)[1]”, „bigint”)/1000
      AS [durata (ms)],
    xevents.event_data.value(
      „(eveniment[@name="blocked_process_report"]/data[@name="lock_mode"]/text)[1]”, „varchar”)
      AS [lock_mode],
    xevents.event_data.value(
      „(eveniment[@name="blocked_process_report"]/data[@name="login_sid"]/value)[1]”, „int”)
      AS [login_sid],
    xevents.event_data.query(
      „(eveniment[@name="blocked_process_report"]/data[@name="blocked_process"]/value/blocked-process-report)[1]')
      AS blocked_process_report,
    xevents.event_data.query(
      „(eveniment/date[@name="xml_report"]/value/deadlock)[1]')
      AS deadlock_graph
  DIN sys.fn_xe_file_target_read_file
    („C:\temp\XEventSessions\blocked_process*.xel”,
     „C:\temp\XEventSessions\blocked_process*.xem”,
     nul, nul)
    CROSS APPLY (SELECTARE CAST(event_data AS XML) AS event_data) ca xevents
)
SELECTAȚI
  CAZUL CÂND blocked_process_report.value('(blocked-process-report[@monitorLoop])[1]', 'nvarchar(max)') ESTE NULL
       APOI „Deadlock”
       ELSE „Proces blocat”
       END AS ReportType,
  [ora evenimentului],
  CAZ [numele aplicației client] WHEN '' THEN ' -- N/A -- '
                         ELSE [numele aplicației client]
                         END AS [nume aplicație client],
  CAZ [nume gazdă client] WHEN '' THEN ' -- N/A -- '
                          ELSE [nume gazdă client]
                          END AS [nume gazdă client],
  [numele bazei de date],
  COALESCE(OBJECT_SCHEMA_NAME(object_id, database_id), ' -- N/A -- ') AS [schema],
  COALESCE(OBJECT_NAME(object_id, database_id), ' -- N/A -- ') AS [tabel],
  index_id,
  [durata (ms)],
  lock_mode,
  COALESCE(SUSER_NAME(login_sid), ' -- N/A -- ') AS nume de utilizator,
  CAZUL CÂND blocked_process_report.value('(blocked-process-report[@monitorLoop])[1]', 'nvarchar(max)') ESTE NULL
       ATUNCI deadlock_graph
       ELSE blocked_process_report
       Raport END AS
FROM events_cte
ORDER BY [ora evenimentului] DESC ;

Dar primesc acest rezultat:

Mesajul 9415, Nivelul 16, Statul 1, Linia 1
Analiza XML: linia 39, caracterul 109, verificare bine formată: fără „<” în valoarea atributului

Vreo idee?

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.