Published on

December 16, 2019

Comprendre l’optimisation des performances de SQL Server

L’optimisation des performances est un aspect crucial de la gestion d’une base de données SQL Server. Cela implique d’analyser les plans de requête, les plans d’exécution, les index, la partitionnement et d’autres facteurs pour optimiser les performances des requêtes et réduire l’utilisation des ressources. Dans cet article, nous explorerons quatre événements qui peuvent aider à identifier les requêtes nécessitant une optimisation des performances.

1. Les Deadlocks

Les deadlocks se produisent lorsque deux processus ou plus attendent que l’autre libère des ressources, ce qui entraîne une situation de deadlock. En surveillant et en analysant les deadlocks, nous pouvons identifier les processus impliqués, les victimes, les types de verrouillage et les verrous détenus/demandés par chaque processus. Ces informations nous aident à comprendre la cause des deadlocks et à prendre les mesures appropriées pour les prévenir.

2. Les Abandons d’application

Les abandons d’application, également connus sous le nom de timeouts, se produisent lorsque une application met fin à l’exécution d’une requête en raison d’une durée excessive. En collectant des informations sur les abandons d’application, telles que l’utilisation du CPU, la durée, les opérations de lecture/écriture, les noms de base de données/client/utilisateur et les instructions SQL, nous pouvons identifier les requêtes qui prennent trop de temps à s’exécuter et les optimiser en conséquence.

3. Le Blocage

Le blocage se produit lorsqu’un processus détient un verrou sur une ressource, empêchant ainsi les autres processus d’y accéder. En surveillant et en analysant les événements de blocage, nous pouvons identifier les processus impliqués, la ressource bloquée, le type d’attente et le niveau d’isolation. Ces informations nous aident à identifier et à résoudre les problèmes de blocage, améliorant ainsi les performances globales de la base de données.

4. Les Requêtes Longues

Les requêtes longues peuvent avoir un impact significatif sur les performances de la base de données. En capturant les requêtes qui dépassent un seuil de durée spécifique, nous pouvons identifier les requêtes nécessitant une optimisation. Des informations telles que le temps CPU, la durée, les lectures/écritures, le nom de la base de données, le nom de l’application cliente, le nom d’utilisateur NT et l’instruction SQL peuvent nous aider à analyser et à optimiser ces requêtes longues.

Pour analyser efficacement ces événements, nous pouvons utiliser les sessions Extended Events (XE) dans SQL Server. Les Extended Events fournissent un moyen flexible et efficace de capturer et d’analyser les événements liés aux performances. Dans cet article, nous avons discuté du processus de décomposition du XML des sessions Extended Event à l’aide d’une procédure stockée appelée “event_GetEventData”. Cette procédure stockée nous permet de définir les données de session XE que nous souhaitons analyser et de filtrer des numéros d’erreur spécifiques, des messages d’erreur et des noms d’application spécifiques.

En tirant parti de la puissance des Extended Events et de la procédure stockée “event_GetEventData”, nous pouvons obtenir des informations précieuses sur les performances de notre base de données SQL Server. Dans la prochaine partie de cette série, nous explorerons comment créer un rapport agrégé et analyser les résultats pour optimiser davantage les performances de nos requêtes.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.