Category : Locks

8 articles

Analyser les block process reports et chaines de locks

Une procédure pour afficher de manière lisible les block process reports que l’on aura capturé avec une session d’évènements étendus (appelée pour cet exemple « LocksReporting ». Cette procédure présente une vue en clair des arborescences de verrous relevées depuis un nombre d’heure (paramètre). Elle fonctionne avec les dernières versions de SQL […]

Kill long transactions automatically

Une autre approche ici pour éviter des verrous bloquants (voir l’autre script « Kill lead blocker automatique »)  : déconnecter toutes les transactions interminables, qu’elles soient bloquantes ou pas (si elles ne le sont pas, elles peuvent le devenir !). C’est brutal et c’est bien loin d’être une véritable solution, le problème […]

Kill lead blocker automatique

Si vous êtes fréquemment confrontés au verrous bloquants pendant de longues durée, voici un script qui identifie la session en tête de la chaîne de blocage (si le blocage dure depuis plus d’un certain délai, variable et à configurer) et fait un KILL de sa connexion. Ce n’est en rien […]

Systemhealth xevents : deadlock reports

Cette requête vous permet d’extraire les évènements « deadlock report » de la session d’évènements étendus « system health » : /*——————————————————————- [SCRIPT] Extract deadlock reports from system_health xevent file [DATABASE] [DESCRIPTION] [MAJ PAR] DATAFLY – Arian Papillon [DATEMAJ] 20200112 ——————————————————————-*/ with XmlDeadlockReports as ( select convert(xml, event_data) as EventData from sys.fn_xe_file_target_read_file(N’system_health*.xel’, NULL, NULL, […]

Capturer les deadlocks avec une notification d’évènement

Ce script permet de mettre en place une journalisation des deadlocks dans une table de la base msdb, via une notification d’évènements. Les informations du deadlock graph sont journalisées en XML dans la table msdb..DeadlockEventsXML. La vue msdb..DeadlockGraphs permet de visualiser les informations au format tabulaire. En particulier, le contenu […]

Capturer les verrous bloquants avec une notification d’évènement

Ce script permet de mettre en place une journalisation des verrous bloquants dans une table de la base msdb, via une notification d’évènements. Il est basé sur une notification d’évènement sur le déclenchement du « blocked process report », configuré à 15 secondes : le message est transmis de manière asynchrone par […]

Afficher la chaîne de verrous

Ce script permet d’afficher la chaîne de blocages de verrous (utilise une CTE récursive) /*——————————————————————- [SCRIPT] Blocking chain [DATABASE] master [DESCRIPTION] Affiche la chaîne de blocages de verrous [AUTHOR] Pinal Dave website [MAJ PAR] DATAFLY – Arian Papillon [DATEMAJ] 20181104 ——————————————————————-*/ SET NOCOUNT ON; GO SELECT spid , blocked , […]

Procédure sp_tran_locks

La DMV sys.dm_db_tran_locks décodée… /*——————————————————————- [SCRIPT] dbo.sp_tran_locks system procedure [DATABASE] master (system object) [DESCRIPTION] sys.dm_db_tran_locks decoded [MAJ PAR] DATAFLY – Arian Papillon [DATEMAJ] 20170122 [EXAMPLE] EXEC dbo.sp_tran_locks @spid = NULL, — int @type = NULL, — nvarchar(60) @mode = NULL, — nvarchar(60) @status = NULL, — nvarchar(60) @Database = NULL, […]