Procedura: Visualizzazione degli eventi per i pacchetti registrati

Prima di creare una sessione degli eventi estesi di SQL Server è utile individuare gli eventi disponibili nei pacchetti registrati. Per ulteriori informazioni, vedere Pacchetti degli eventi estesi di SQL Server.

Il completamento di questa attività comporta l'utilizzo dell'editor di query in SQL Server Management Studio per effettuare la procedura descritta di seguito.

Al termine delle istruzioni in questa procedura, nella scheda Risultati dell'editor di query vengono visualizzate le seguenti colonne:

  • name. Nome del pacchetto.

  • event. Nome dell'evento.

  • keyword. Parola chiave derivata da una tabella di mapping numerica interna.

  • channel. Pubblico per un evento.

  • description. Descrizione dell'evento.

Per visualizzare gli eventi per i pacchetti registrati

  • Nell'editor di query eseguire le istruzioni indicate di seguito.

    USE msdb
    SELECT p.name, c.event, k.keyword, c.channel, c.description FROM
    (
    SELECT event_package=o.package_guid, o.description, 
    event=c.object_name, channel=v.map_value
    FROM sys.dm_xe_objects o
    LEFT JOIN sys.dm_xe_object_columns c ON o.name=c.object_name
    INNER JOIN sys.dm_xe_map_values v ON c.type_name=v.name 
    AND c.column_value=cast(v.map_key AS nvarchar)
    WHERE object_type='event' AND (c.name='CHANNEL' or c.name IS NULL)
    
    ) c LEFT JOIN 
    (
    SELECT event_package=c.object_package_guid, event=c.object_name, 
    keyword=v.map_value
    FROM sys.dm_xe_object_columns c INNER JOIN sys.dm_xe_map_values v 
    ON c.type_name=v.name AND c.column_value=v.map_key 
    AND c.type_package_guid=v.object_package_guid
    INNER JOIN sys.dm_xe_objects o ON o.name=c.object_name 
    AND o.package_guid=c.object_package_guid
    WHERE object_type='event' AND c.name='KEYWORD' 
    ) k
    ON
    k.event_package=c.event_package AND (k.event=c.event or k.event IS NULL)
    INNER JOIN sys.dm_xe_packages p ON p.guid=c.event_package
    ORDER BY keyword desc, channel, event