select
snap_id
,to_char(start_snap_time,'DD/MM/YYYY HH24:MI:SS') as start_snap_time
to_char(end_snap_time,'DD/MM/YYYY HH24:MI:SS') as end_snap_time
,trunc((end_snap_time-start_snap_time)*24*60*60) elapsed_time
,stat_name
,value
from (
select
snap.snap_id
,snap.startup_time as startup_time
,case
when snap.startup_time - lag(snap.startup_time,1) over (partition by e.stat_id,e.dbid,snap.instance_number,snap.startup_time order by snap.snap_id ) = 0
then lag(snap.snap_time) over (order by snap.dbid, snap.instance_number, snap.snap_id)
when (snap.startup_time > lag(snap.startup_time,1) over (partition by e.stat_id,e.dbid,snap.instance_number,snap.startup_time order by snap.snap_id )) or
(lag(snap.startup_time,1) over (partition by e.stat_id,e.dbid,snap.instance_number,snap.startup_time order by snap.snap_id ) is null)
then snap.startup_time
end start_snap_time
, snap.snap_time AS end_snap_time
,sn.stat_name
,case
when snap.startup_time - lag(snap.startup_time,1) over (partition by e.stat_id,e.dbid,snap.instance_number,snap.startup_time order by snap.snap_id ) = 0
then round(((e.value - lag(e.value,1) over ( partition by e.stat_id,e.dbid,snap.instance_number,snap.startup_time order by snap.snap_id)))/1000000,1)
when snap.startup_time > lag(snap.startup_time,1) over (partition by e.stat_id,e.dbid,snap.instance_number,snap.startup_time order by snap.snap_id )
then round(e.value/1000000,1)
else round(e.value/1000000,1)
end value
from stats$sys_time_model e
, stats$time_model_statname sn
, stats$snapshot snap
where
snap.snap_id = e.snap_id
and snap.dbid = e.dbid
and snap.instance_number = e.instance_number
and e.stat_id = sn.stat_id
-- and snap.snap_time >= TO_DATE('&start_date','DD/MM/YYYY HH24:MI')
-- and snap.snap_time <= TO_DATE('&end_date','DD/MM/YYYY HH24:MI')
and sn.stat_name = 'DB time'
-- and snap.snap_id between 1 and 82
and snap.snap_time >= sysdate - 15
and snap.snap_time <= sysdate -2
order by snap.snap_id
)
On peut utiliser cette requête sous SQL Developper afin de créer un graphique.
Petit rappel, sous SQL Developper, pour créer un graphique, la requête doit retourner 3 colonnes. Par rapport à la requête ci-dessus, j'ai donc commenté les colonnes ci-dessous :
J'ai également ajouté une variable :
Il ne faut pas mettre de ";" ni de "/" à la fin de la requête.
On laisse les propriétés du graphique par défaut. Lors de l'exécution de la requête, le nombre de jours est demandé :




Aucun commentaire:
Enregistrer un commentaire