Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment comprendre les statistiques du fichier de trace dans Oracle. Tels que le processeur, le temps écoulé, la requête, etc.

La plus petite unité d'accès aux données dans Oracle Database est un bloc. Pas une ligne.

Chaque bloc peut stocker plusieurs lignes.

La base de données peut accéder à un bloc en mode courant ou cohérent.

  • Actuel =car le bloc existe "en ce moment".
  • Cohérent =car le blocage existait au moment où votre requête a commencé.

Les colonnes query et current indiquent combien de fois la base de données a accédé à un bloc en mode cohérent (requête) et courant.

Lors de l'accès à un bloc, il se peut qu'il se trouve déjà dans le cache tampon (mémoire). Si c'est le cas, aucun accès au disque n'est nécessaire. Sinon, il doit faire une lecture physique (pr). La colonne de disque est un décompte du nombre total de lectures physiques.

Les statistiques de chaque ligne du plan sont les chiffres de cette opération. Plus la somme de toutes ses opérations enfants.

En termes simples, la base de données traite le plan en accédant d'abord au premier enfant. Passe ensuite les lignes au parent. Ensuite, tous les autres enfants de ce parent dans l'ordre. Les opérations enfants sont en retrait de leur parent dans l'affichage.

La base de données a donc traité votre requête comme suit :

  1. Lire 2 000 lignes de CLIENT. Cela nécessitait 749 lectures de bloc cohérentes et 363 lectures de disque (valeurs cr et pr sur cette ligne). Cela a pris 10 100 microsecondes.
  2. Lire 112 458 lignes de BOOKING. Cela a fait 8 203 lectures cohérentes et zéro lecture de disque. Cela a pris 337 595 microsecondes
  3. A joint ces deux tables à l'aide d'une jointure par hachage. Les valeurs CR, PR, PW (écritures physiques) et de temps sont la somme des opérations en dessous. De plus, quel que soit le travail effectué par cette opération. Donc la jointure de hachage :
    • did 8 952 - ( 749 + 8 203 ) =zéro lecture cohérente
    • did 363 - ( 363 + 0 ) =zéro lecture physique
    • a pris 1 363 447 - ( 10 100 + 337 595 ) =1 015 752 microsecondes pour s'exécuter

Remarquez que les totaux CR et PR pour la jointure par hachage correspondent aux totaux de la requête et du disque dans la ligne de récupération ?

La colonne de comptage indique le nombre de fois que l'opération s'est produite. Un fetch est un appel à la base de données pour obtenir des lignes. Ainsi, le client a appelé la base de données 7 499 fois. Chaque fois qu'il a reçu ceil( 112 458 / 7 499 ) =15 lignes.

CPU est le temps total en secondes pendant lequel les processeurs du serveur ont exécuté cette étape. Elapsed est le temps total de l'horloge murale. C'est le temps CPU + tout travail supplémentaire. Tels que les lectures de disque, l'heure du réseau, etc.