Beispiele: SQL-Anwendungsfälle
Die folgenden SQL-Beispiele sind nützlich, um die im AWR-Hub-Server aufgenommenen Daten zu analysieren und potenzielle Probleme in den Quelldatenbanken zu ermitteln.
Um mit dem unter Ops Insights-Warehaus-Datenbankbenutzer erstellen erstellten Benutzer und dem unter Auf Ops Insights-Warehaus zugreifen heruntergeladenen Wallet eine Verbindung zu ADW herstellen, benötigen Sie ein Tool wie Oracle SQL Developer.
Informationen zum Herstellen einer Verbindung zu Autonomous AI Lakehouse mit SQL Developer finden Sie unter:
- Verbindung zu Autonomous AI Lakehouse mit SQL Developer herstellen (Video, 3:20)
- Oracle SQL Developer mit einem Wallet (mTLS) verbinden
Beispiel 9-1 SQL-Planänderungen für eine SQLID in einer einzelnen Datenbank
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_minsBeispiel 9-2 SQL-Planänderungen für eine SQLID in mehreren AWR-Quelldatenbanken
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_minsBeispiel 9-3 Frühere und aktuelle SQL-Performance für einen bestimmten Zeitraum für eine SQLID in einer einzelnen Datenbank
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