Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Charge de la base de données
La charge de base de données (charge de base de données) mesure le niveau d'activité de session dans votre base de données. DBLoad
est l'indicateur clé de Performance Insights, et Performance Insights collecte la charge de base de données chaque seconde.
Sessions actives
Une session de base de données représente le dialogue d'une application avec une base de données relationnelle. Une session active est une connexion qui a transmis du travail au moteur de base de données et qui attend une réponse.
Une session est active lorsqu'elle est en cours d'exécution CPU ou lorsqu'elle attend qu'une ressource soit disponible pour pouvoir continuer. Par exemple, une session active peut attendre qu'une page (ou un bloc) soit lu en mémoire, puis consommer CPU pendant qu'elle lit les données de la page.
Sessions actives en moyenne
La moyenne des sessions actives (AAS) est l'unité de la DBLoad
métrique dans Performance Insights. Elle mesure le nombre de sessions actives simultanément sur la base de données.
Toutes les secondes, Performance Insights échantillonne le nombre de sessions exécutant simultanément une requête. Pour chaque session active, Performance Insights collecte les données suivantes :
-
SQLdéclaration
-
État de la session (en cours d'exécution CPU ou en attente)
-
Host (Hôte)
-
Utilisateur exécutant le SQL
Performance Insights calcule le AAS en divisant le nombre total de sessions par le nombre d'échantillons pour une période donnée. Par exemple, la table suivante présente 5 échantillons consécutifs d'une requête en cours d'exécution, prélevés à des intervalles d'une seconde.
Exemple | Nombre de sessions exécutant la requête | AAS | Calcul |
---|---|---|---|
1 | 2 | 2 | 2 sessions au total/1 échantillon |
2 | 0 | 1 | 2 sessions au total/2 échantillons |
3 | 4 | 2 | 6 sessions au total/3 échantillons |
4 | 0 | 1.5 | 6 sessions au total/4 échantillons |
5 | 4 | 2 | 10 sessions au total/5 échantillons |
Dans l'exemple précédent, la charge de base de données pour l'intervalle de temps était de 2AAS. Cette mesure signifie qu'en moyenne, deux sessions étaient actives à la fois à n'importe quel moment au cours de la période où les cinq échantillons ont été prélevés.
Exécutions actives moyennes
La moyenne des exécutions actives (AAE) par seconde est liée àAAS. Pour calculer leAAE, Performance Insights divise le temps d'exécution total d'une requête par l'intervalle de temps. Le tableau suivant indique le AAE calcul pour la même requête dans le tableau précédent.
Temps écoulé (en secondes) | Durée totale d'exécution (en secondes) | AAE | Calculs |
---|---|---|---|
60 | 120 | 2 | 120 secondes d'exécution/60 secondes écoulées |
120 | 120 | 1 | 120 secondes d'exécution/120 secondes écoulées |
180 | 380 | 2.11 | 380 secondes d'exécution/180 secondes écoulées |
240 | 380 | 1.58 | 380 secondes d'exécution/240 secondes écoulées |
300 | 600 | 2 | 600 secondes d'exécution/300 secondes écoulées |
Dans la plupart des cas, les AAE termes AAS et pour une requête sont approximativement identiques. Cela dit, comme les données utilisées pour les calculs proviennent de sources différentes, les calculs varient souvent légèrement.
Dimensions
La métrique db.load
est différente des autres métriques de série chronologique, car vous pouvez la décomposer en sous-composants appelés dimensions. Vous pouvez considérer les dimensions comme des catégories de « tranches » pour les différentes caractéristiques de la métrique DBLoad
.
Lorsque vous diagnostiquez des problèmes de performances, les dimensions suivantes sont souvent les plus utiles :
Rubriques
Pour obtenir la liste complète des dimensions des moteurs Amazon RDS , consultezCharge de base de données tranchée par dimensions.
Événements d'attente
Un événement d'attente oblige une SQL instruction à attendre qu'un événement spécifique se produise avant de pouvoir continuer à s'exécuter. Les événements d'attente constituent une dimension (ou catégorie) importante pour la charge de la base de données, car ils indiquent les points de blocage du travail.
Chaque session active est soit en cours d'exécution, CPU soit en attente. Par exemple, les sessions consomment CPU lorsqu'elles recherchent une mémoire tampon, effectuent un calcul ou exécutent du code procédural. Lorsque les sessions ne sont pas trop gourmandesCPU, elles peuvent attendre qu'une mémoire tampon soit libérée, qu'un fichier de données soit lu ou qu'un journal soit écrit. Plus une session attend les ressources, moins elle s'exécute sur leCPU.
Lorsque vous réglez une base de données, vous cherchez souvent à identifier les ressources que les sessions attendent. Par exemple, deux ou trois événements d'attente peuvent représenter 90 % de la charge de la base de données. Cette mesure signifie qu'en moyenne, les sessions actives passent la majeure partie de leur temps à attendre un petit nombre de ressources. Si vous trouvez la cause de ces attentes, vous pouvez tenter une solution.
Les événements d'attente varient en fonction du moteur de base de données :
-
Pour plus d'informations sur tous les événements MariaDB et SQL My wait, consultez les tableaux récapitulatifs des événements Wait
dans la documentation My. SQL -
Pour plus d'informations sur tous les événements d'SQLattente Postgre, consultez The Statistics Collector > Wait Event tables
dans la documentation PostgreSQL. -
Pour plus d'informations sur tous les événements d'attente Oracle, veuillez consulter Descriptions of Wait Events
dans la documentation Oracle. -
Pour plus d'informations sur tous les événements d'attente SQL du serveur, consultez la section Types d'attente
dans la documentation SQL du serveur.
Note
Pour Oracle, les processus d'arrière-plan fonctionnent parfois sans SQL instruction associée. Dans ce cas, Performance Insights communique le type de processus en arrière-plan concaténé avec le signe deux-points, et la classe d'attente associée à ce processus en arrière-plan. Parmi les types de processus en arrière-plan figurent LGWR
, ARC0
, PMON
, etc.
Par exemple, lorsque le programme d'archivage effectue des opérations d'I/O, le rapport Performance Insights correspondant est similaire à ARC1:System I/O
. Parfois, le type du processus en arrière-plan est également omis et Performance Insights communique uniquement la classe d'attente, par exemple :System
I/O
.
Haut SQL
Lorsque les événements d'attente indiquent des goulots d'étranglement, le haut SQL indique les requêtes qui contribuent le plus à la charge de la base de données. Par exemple, de nombreuses requêtes peuvent être en cours d'exécution sur la base de données, mais une seule d'entre elles peut consommer 99 % de la charge de la base de données. Dans ce cas, la charge élevée peut indiquer un problème avec la requête.
Par défaut, la console Performance Insights affiche les principales SQL requêtes qui contribuent au chargement de la base de données. La console affiche également des statistiques pertinentes pour chaque instruction. Pour diagnostiquer les problèmes de performances d'une instruction spécifique, vous pouvez examiner son plan d'exécution.
Plans
Un plan d'exécution, également appelé simplement un plan, est une séquence d'étapes qui accèdent aux données. Par exemple, un plan de jonction de tables t1
et t2
peut parcourir toutes les lignes de t1
et comparer chaque ligne à une ligne de t2
. Dans une base de données relationnelle, un optimiseur est un code intégré qui détermine le plan le plus efficace pour une SQL requête.
Pour les instances de base de données, Performance Insights collecte automatiquement les plans d'exécution. Pour diagnostiquer les problèmes SQL de performances, examinez les plans capturés pour les SQL requêtes nécessitant beaucoup de ressources. Les plans montrent comment la base de données a analysé et exécuté les requêtes.
Pour savoir comment analyser la charge de base de données à l'aide de plans, voir :
Capture du plan
Toutes les cinq minutes, Performance Insights identifie les requêtes les plus gourmandes en ressources et enregistre leurs plans. Ainsi, vous n'avez pas besoin de collecter et de gérer manuellement un grand nombre de plans. Vous pouvez plutôt utiliser l'SQLonglet Haut pour vous concentrer sur les plans relatifs aux requêtes les plus problématiques.
Note
Performance Insights ne capture pas de plans pour les requêtes dont le texte dépasse la limite maximale de texte de requête collectable. Pour de plus amples informations, veuillez consulter Accès à plus de SQL texte dans le tableau de bord Performance Insights.
La période de conservation des plans d'exécution est la même que pour vos données Performance Insights. Le paramètre de rétention dans l'offre gratuite est Par défaut (7 jours). Pour conserver vos données de performance plus longtemps, indiquez 1 à 24 mois. Pour obtenir plus d'informations sur les périodes de conservation, consultez Tarification et conservation des données pour Performance Insights.
Requêtes récapitulatives
L'SQLonglet Top affiche les requêtes de résumé par défaut. Une requête récapitulative n'a pas elle-même de plan, mais toutes les requêtes utilisant des valeurs littérales ont des plans. Par exemple, une requête récapitulative peut inclure le texte WHERE `email`=?
. Le récapitulatif peut contenir deux requêtes, l'une avec le texte WHERE email=user1@example.com
et l'autre avec WHERE
email=user2@example.com
. Chacune de ces requêtes littérales peut inclure plusieurs plans.
Lorsque vous sélectionnez une requête de résumé, la console affiche tous les plans relatifs aux instructions secondaires du résumé sélectionné. Par conséquent, vous n'avez pas besoin de parcourir toutes les instructions enfant pour trouver le plan. Vous pouvez voir des plans qui ne figurent pas dans la liste affichée des 10 premières instructions enfant. La console affiche les plans pour toutes les requêtes enfant pour lesquelles des plans ont été collectés, que les requêtes figurent ou non dans les 10 premières requêtes.