Historique des temps d'exécution d'un ordre SQL
Bonjour,
J'ai besoin d'afficher la liste des temps d'exécution sur plusieurs jours, heure par heure, pour un ordre SQL précis.
Après avoir pas mal traîné sur le net, je me suis rendu compte que cette demande n'était pas si simple dès qu'on veut remonter dans le passé et que les ordres ne sont plus dans v$sql.
Voici ma requête, est-ce que vous pensez qu'elle est correcte?
J'utilise la table DBA_HIST_SQLSTAT et les champs ELAPSED_TIME_DELTA et EXECUTIONS_DELTA qui sont respectivement le temps écoulé pour les N exécutions d'un sql_id dans le snapshot et son nombre d'exécution dans le même snapshot.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| set linesize 150 pagesize 5000
col "Jour début" for A15
col "Jour fin" for A15
col "Heure début" for A15
col "Heure fin" for A15
break on "Jour début" skip 1
select
SNAP.SNAP_ID,
to_char(SNAP.BEGIN_INTERVAL_TIME,'DD/MM/YYYY') AS "Jour début",
to_char(SNAP.BEGIN_INTERVAL_TIME,'HH24:MI:SS') AS "Heure début",
to_char(SNAP.END_INTERVAL_TIME,'DD/MM/YYYY') AS "Jour fin",
to_char(SNAP.END_INTERVAL_TIME,'HH24:MI:SS') AS "Heure fin",
EXECUTIONS_DELTA AS "Nb d'exécution",
round(SQL.ELAPSED_TIME_DELTA/decode(EXECUTIONS_DELTA,0,1,EXECUTIONS_DELTA)/1000,2) AS "Temps milli s",
round((SQL.ELAPSED_TIME_DELTA/decode(EXECUTIONS_DELTA,0,1,EXECUTIONS_DELTA))/1000000,2) AS "Temps s"
from
DBA_HIST_SQLSTAT SQL,
DBA_HIST_SNAPSHOT SNAP
where
SNAP.SNAP_ID = SQL.SNAP_ID and
SQL.SQL_ID = '&sql_id'
order by
SNAP.SNAP_ID;
SNAP_ID Jour début Heure début Jour fin Heure fin Nb d'exécution Temps milli s Temps s
---------- --------------- --------------- --------------- --------------- --------------- ------------- ----------
19108 09/01/2018 01:00:22 09/01/2018 02:00:31 16 5287.72 5.29
19113 06:00:57 09/01/2018 07:00:03 58 2682.74 2.68
19114 07:00:03 09/01/2018 08:00:09 1723 2785.15 2.79
19115 08:00:09 09/01/2018 09:00:16 3235 2837.58 2.84
19116 09:00:16 09/01/2018 10:00:24 6454 3062.59 3.06
19117 10:00:24 09/01/2018 11:00:33 6854 3212.02 3.21
19118 11:00:33 09/01/2018 12:00:41 5999 3056.96 3.06
19119 12:00:41 09/01/2018 13:00:49 3553 2983.45 2.98
19120 13:00:49 09/01/2018 14:00:56 4479 2911.17 2.91
19121 14:00:56 09/01/2018 15:00:03 5799 3030.82 3.03
19122 15:00:03 09/01/2018 16:00:11 5497 3055.83 3.06
19123 16:00:11 09/01/2018 17:00:18 3616 2978.25 2.98
19124 17:00:18 09/01/2018 18:00:25 1653 2922.01 2.92
19125 18:00:25 09/01/2018 19:00:32 590 2881.23 2.88
19126 19:00:32 09/01/2018 20:00:38 153 2819.59 2.82
19127 20:00:38 09/01/2018 21:00:44 34 2773.81 2.77
19128 21:00:44 09/01/2018 22:00:51 13 2812.49 2.81
19129 22:00:51 09/01/2018 23:00:57 6 2867.38 2.87
19130 23:00:57 10/01/2018 00:00:03 10 2902.88 2.9
19131 10/01/2018 00:00:03 10/01/2018 01:00:10 2 3541.64 3.54
19132 01:00:10 10/01/2018 02:00:18 4 3008.39 3.01
19137 06:00:45 10/01/2018 07:00:51 47 2766.9 2.77
19138 07:00:51 10/01/2018 08:00:58 1755 2816.86 2.82
19139 08:00:58 10/01/2018 09:00:05 3745 2897.61 2.9 |