Colonnes TOTAL de DBA_HIST_SQLSTAT
Bonjour,
Je cherche à récupérer des statistiques de AWR sur les requêtes SQL mais je récupère des données étranges.
La table DBA_HIST_SQLSTAT donne le temps CPU utilisé par un curseur particulier (CPU_TIME_TOTAL). Ce temps est un temps cumulé depuis le démarrage de l'instance selon la doc Oracle. Donc mon raisonnement est le suivant :
Le temps CPU utilisé par la requête entre 2 snapshots est : CPU_TIME_TOTAL de fin - CPU_TIME_TOTAL de début.
Mais je me retrouve alors avec des temps négatifs !:roll:
Voilà un exemple :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| SELECT
s.SNAP_ID,
h.STARTUP_TIME,
SQL_ID,
PLAN_HASH_VALUE,
CPU_TIME_TOTAL*POWER(10,-6) "CPU_TIME_TOTAL",
ELAPSED_TIME_TOTAL*POWER(10,-6) "ELAPSED_TIME_TOTAL"
FROM
DBA_HIST_SQLSTAT s,
DBA_HIST_SNAPSHOT h
WHERE s.SNAP_ID IN (431, 432, 433)
AND SQL_ID='7ca0jht73uv92'
AND s.SNAP_ID=h.SNAP_ID |
Code:
1 2 3 4 5
| SNAP_ID STARTUP_TIME SQL_ID PLAN_HASH_VALUE CPU_TIME_TOTAL ELAPSED_TIME_TOTAL
---------- ------------------------------ ------------- --------------- -------------- -------------
431 11/06/08 14:33:43,000 7ca0jht73uv92 552933365 221,775941 258,019053
432 11/06/08 14:33:43,000 7ca0jht73uv92 552933365 274,695173 315,785084
433 11/06/08 14:33:43,000 7ca0jht73uv92 552933365 11,045736 18,800089 |
Si je prend comme intervalle les snap 432-433, la requête à consommé un temps CPU négatif (la requête executée 10s avant de se lancer :mouarf:).
Je précise que j'ai plusieurs requêtes qui génère des conso. CPU négatives et pas qu'une seule... et que les valeurs négatives sont aussi pour le nombre d'exécution, de parse etc...
Est-ce que quelqu'un à une explication ?
Merci