Exemples : cas d'emploi SQL
Les exemples de code SQL suivants sont utiles pour analyser les données incluses dans le serveur du hub de référentiel AWR et pour identifier les problèmes potentiels des bases de données source.
Pour vous connecter à ADW avec l'utilisateur que vous avez créé dans Création d'un utilisateur de base de données d'entrepôt Ops Insights et le portefeuille que vous avez téléchargé dans Accès à l'entrepôt Ops Insights, vous avez besoin d'un outil tel qu'Oracle SQL Developer.
Pour plus d'informations sur la connexion à ADW avec SQL Developer, reportez-vous aux ressources :
- Connexion à ADW à l'aide de SQL Developer (vidéo, 3:20)
- Connexion d'Oracle SQL Developer avec un portefeuille (mTLS)
Exemple 9-1 Modifications de plan SQL pour un SQLID sur une base de données unique
select sql_id, plan_hash_value,
sum(EXECUTIONS_DELTA) executions,
sum(ROWS_PROCESSED_delta) crows,
round(sum(CPU_TIME_delta)/1000000/60) cpu_mins,
round(sum(ELAPSED_TIME_delta)/1000000/60) ela_mins
from dba_hist_sqlstat
where SQL_ID=trim('&sqlid')
AND dbid='&dbid'
group by sql_id, plan_hash_value
order by sql_id, cpu_mins
Exemple 9-2 Modifications de plan SQL pour un SQLID dans plusieurs bases de données source AWR
select ar.source_name source_name, ar.source_awrid dbid, s.sql_id, s.plan_hash_value,
sum(EXECUTIONS_DELTA) executions,
sum(ROWS_PROCESSED_delta) crows,
round(sum(CPU_TIME_delta)/1000000/60) cpu_mins,
round(sum(ELAPSED_TIME_delta)/1000000/60) ela_mins
from dba_hist_sqlstat s, awrhub_registration ar
where s.SQL_ID=trim(:sqlid)
AND s.dbid=ar.source_awrid
and s.dbid in (:dbid1, :dbid2)
AND ar.registration_state = 'ACTIVE'
group by ar.source_name, ar.source_awrid, s.sql_id, s.plan_hash_value
order by s.sql_id, cpu_mins
Exemple 9-3 Performances SQL passées et actuelles au cours d'une période donnée pour un SQLID sur une base de données unique
SELECT to_char(Min(s.end_interval_time), 'DD-MON-YYYY DY HH24:MI') sample_end,
q.sql_id,
q.plan_hash_value,
Sum(q.executions_delta) executions,
Round(Sum(disk_reads_delta) / greatest(Sum(executions_delta), 1), 1)
pio_per_exec,
Round(Sum(buffer_gets_delta) / greatest(Sum(executions_delta), 1), 1)
lio_per_exec,
Round(( Sum(elapsed_time_delta) / greatest(Sum(executions_delta), 1) /
1000 ), 1
) msec_exec
FROM dba_hist_sqlstat q,
dba_hist_snapshot s
WHERE q.sql_id = trim('&sqlid')
AND s.snap_id = q.snap_id
AND s.dbid = q.dbid
AND s.dbid = '&dbid'
AND s.instance_number = q.instance_number
AND s.end_interval_time >= to_date(trim('&start_time.'),
'dd-mon-yyyy hh24:mi')
AND s.begin_interval_time <= to_date(trim('&end_time.'),
'dd-mon-yyyy hh24:mi')
GROUP BY s.snap_id,
q.sql_id,
q.plan_hash_value
ORDER BY s.snap_id,
q.sql_id,
q.plan_hash_value