Ejemplos: casos de uso de SQL
Los siguientes ejemplos de SQL son útiles para analizar los datos ingeridos en el servidor del hub de AWR e identificar posibles problemas en las bases de datos origen.
Para conectarse a ADW con el usuario que ha creado en Crear un usuario de base de datos del almacén de Ops Insights y la cartera que ha descargado en Acceder al almacén de Ops Insights, necesitará una herramienta como Oracle SQL Developer.
Para obtener información sobre la conexión a ADW con SQL Developer, consulte:
- Vídeo sobre la conexión a ADW mediante SQL Developer (3:20)
- Vídeo sobre la conexión a Oracle SQL Developer con una cartera (mTLS)
Ejemplo 9-1 Cambios de plan SQL para un SQLID en una sola base de datos
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
Ejemplo 9-2 Cambios de plan SQL para un SQLID en varias bases de datos origen de 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
Ejemplo 9-3 Rendimiento anterior y actual de SQL en un rango de tiempo determinado para un SQLID en una sola base de datos
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