Comment surveiller les blocages

11

Quand commencez-vous à résoudre les blocages SQL Server 2005/2008 et comment? L'alerte est activée sur SSMS via une alerte de condition de performance SQL Server, objets-> SQLServer: verrous, compteur-> Attentes de verrouillage / s, instance: _Total, alerte si le compteur: dépasse la valeur 3. Est-ce un moyen proactif de le surveiller? Quelle est la valeur acceptable? Je vous serais très reconnaissant de votre aide. Je vous remercie!!!

db7
la source

Réponses:

7

Vous pouvez utiliser les notifications d'événements pour être averti chaque fois qu'un blocage se produit sur le serveur:

Voir:

Liens supplémentaires:

Sankar Reddy
la source
3

La première chose à faire est de regarder le graphique de blocage et de voir exactement ce qui se passe. Ensuite, vous pouvez envisager vos options, qui se résument généralement à a) modifier l'application pour normaliser un ordre de verrouillage des objets (par exemple, si possible compte tenu de la logique de l'application, établissez une convention avec vos développeurs pour toujours verrouiller les tables par ordre alphabétique) ou b ) voyez si vous opérez vraiment au niveau d'isolement approprié dans chaque transaction.

Gaius
la source
Selon stackoverflow.com/a/112256/14731, un ordre de verrouillage cohérent n'empêche pas les interblocages.
Gili
3

J'irais avec le traçage automatique côté serveur de 2 problèmes principaux:

  • longues requêtes (vous établissez une durée longue pour votre environnement)

  • deadlocks - consultez le graphique Deadlock et Lock: Deadlock chain

Vous obtiendrez des fichiers de trace tous les jours et vous pourrez surveiller l'action - voir si un événement planifié cause des problèmes. Vous pouvez voir plus de détails sur le profilage de la production dans cette question: Utilisation de SQL Profiler sur une base de données en production .

Marian
la source
1

System Center Operations Manager (SCOM) avec le pack SQL Server Management peut alerter sur les blocages si vous activez la journalisation pour le message 1205. Vous pouvez l'activer avec la requête SQL suivante: EXEC sp_altermessage 1205, 'WITH_LOG', 'true'.

Voir également ma réponse à "Pourquoi le nom d'objet et le nom d'index ne sont-ils pas renseignés dans le graphique de blocage?" pour un script PowerShell que j'ai écrit qui va extraire les informations de blocage du tampon d'événements et écrire les graphiques de blocage sous forme de fichiers xdl qui peuvent être ouverts dans SQL Management Studio 2012 ou supérieur ou affichés dans le bloc-notes pour voir plus de détails.

JamieSee
la source