- Lancez le New Session Wizard depuis Object Explorer Management/Extended Events/Sessions :

- Spécifiez un nom pour votre session. Sélectionnez l’option Start the event session at server startup si vous souhaitez la lancer au démarrage du serveur :

- Dans la section Select Events To Capture, recherchez « xml_deadlock_report » :

- Dans la section Specify Session Data Storage, indiquez le chemin d’accès à l’emplacement où sera stocké le fichier contenant les résultats enregistrés de la session. L’option Enable file rollover active la rotation automatique dans le répertoire spécifié.
- Dans la section Summary, vous pouvez ouvrir et enregistrer les résultats de la session de l’assistant en T-SQL.
Afficher des informations sur les interblocages
- Consultation d’informations sur les interblocages à l’aide de la session XEvents Pour lire les fichiers .xel, SQL Server fournit un composant DMF sys.fn_xe_file_target_read_file. Exécutez la requête suivante dans SQL Server Management Studio et spécifiez le chemin d’accès vers les fichiers de trace : select xdata.value(’(/event/data/value/deadlock/process-list/process/@lasttranstarted)[1]’,‘datetime’ ) as lasttranstarted ,xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@objectname)[1]’ ,‘nvarchar(max)’) as objectname ,xdata.value(’(/event/data/value/deadlock/process-list/process/@clientapp)[1]’ ,‘nvarchar(256)’) as client_app ,xdata.value(’(/event/data/value/deadlock/process-list/process/@hostname)[1]’ ,‘nvarchar(256)’) as hostname ,xdata.value(’(/event/data/value/deadlock/process-list/process/@loginname)[1]’ ,‘nvarchar(256)’) as loginname ,xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@indexname)[1]’ ,‘nvarchar(256)’) as indexname ,xdata.value(’(/event/data/value/deadlock/process-list/process/@waittime)[1]’ ,‘int’ ) as waittime ,xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@mode)[1]’ ,‘nvarchar(10)’ ) as lockmode ,xdata.query(’(/event/data/value/deadlock)[1]’) as deadlock_graphfrom sys.fn_xe_file_target_read_file(‘D:\MSSQL\XE\deadlocks\deadlocks.xel’,null,null,null) as f — wildcard (deadlocks*.xel)cross apply (select cast(f.event_data as xml)) as e(xdata);
- Affichage d’informations sur les interblocages à l’aide de la session system_health Si la journalisation des interblocages n’est pas activée, vous pouvez afficher des informations sur les interblocages à l’aide d’une session qui est toujours activée par défaut (system_health). Pour ce faire, exécutez la requête suivante dans SQL Server Management Studio : select e.xdata.value(’(/event/data/value/deadlock/process-list/process/@lasttranstarted)[1]’,‘datetime’ ) as lasttranstarted ,e.xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@objectname)[1]’ ,‘nvarchar(max)’) as objectname ,e.xdata.value(’(/event/data/value/deadlock/process-list/process/@clientapp)[1]’ ,‘nvarchar(256)’) as client_app ,e.xdata.value(’(/event/data/value/deadlock/process-list/process/@hostname)[1]’ ,‘nvarchar(256)’) as hostname ,e.xdata.value(’(/event/data/value/deadlock/process-list/process/@loginname)[1]’ ,‘nvarchar(256)’) as loginname ,e.xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@indexname)[1]’ ,‘nvarchar(256)’) as indexname ,e.xdata.value(’(/event/data/value/deadlock/process-list/process/@waittime)[1]’ ,‘int’ ) as waittime ,e.xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@mode)[1]’ ,‘nvarchar(10)’ ) as lockmode ,e.xdata.query(’(/event/data/value/deadlock)[1]’) as deadlock_graphfrom sys.fn_xe_file_target_read_file(‘system_health*.xel’,null,null,null) as fcross apply (select cast(f.event_data as xml)) as e(xdata)where object_name = N’xml_deadlock_report’;
- Affichage des informations sur les interblocages dans Azure Azure dispose d’une session distincte qui est collectée par défaut dans le stockage blob. Pour la consulter, utilisez l’exemple de requête ci-dessous (la requête doit être exécutée dans le contexte master) : select f.file_name ,xdata.value(’(/event/data/value/deadlock/process-list/process/@lasttranstarted)[1]’,‘datetime’ ) as lasttranstarted ,xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@objectname)[1]’ ,‘nvarchar(max)’) as objectname ,xdata.value(’(/event/data/value/deadlock/process-list/process/@clientapp)[1]’ ,‘nvarchar(256)’) as client_app ,xdata.value(’(/event/data/value/deadlock/process-list/process/@hostname)[1]’ ,‘nvarchar(256)’) as hostname ,xdata.value(’(/event/data/value/deadlock/process-list/process/@loginname)[1]’ ,‘nvarchar(256)’) as loginname ,xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@indexname)[1]’ ,‘nvarchar(256)’) as indexname ,xdata.value(’(/event/data/value/deadlock/process-list/process/@waittime)[1]’ ,‘int’ ) as waittime ,xdata.value(’(/event/data/value/deadlock/resource-list/keylock/@mode)[1]’ ,‘nvarchar(10)’ ) as lockmode ,xdata.query(’(/event/data/value/deadlock)[1]’) as deadlock_graphfrom sys.fn_xe_telemetry_blob_target_read_file(‘dl’, null, null, null) as fcross apply (select cast(f.event_data as xml)) as e(xdata);
