Exemples : Cas d'utilisation SQL
Les exemples SQL suivants sont utiles pour analyser les données ingérées dans le serveur du concentrateur AWR et pour identifier les problèmes potentiels liés aux bases de données sources.
Pour vous connecter à ADW avec l'utilisateur que vous avez créé dans Créer une base de données de l'entrepôt du service de données clés sur l'exploitation et le portefeuille que vous avez téléchargé dans Accéder à l'entrepôt du service de données clés sur l'exploitation, vous avez besoin d'un outil tel qu'Oracle SQL Developer.
Pour plus d'informations sur la connexion à ADW avec SQL Developer, voir :
- Connexion à ADW à l'aide de SQL Developer (vidéo, 3:20)
- Connexion à Oracle SQL Developer à l'aide d'un portefeuille (mTLS)
Exemple 9-1 : Modifications de plan SQL pour un SQLID dans 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 sources 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 : Performance SQL passée et présente pendant un intervalle de temps donné pour un SQLID dans 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