Back to Performance Tuning
sql
5 Detailed History For Particular Query
5_detailed_history_for_particular_query.sql
Disclaimer:
This script is provided for educational and learning purposes. Review it carefully,
test in a non-production environment, confirm privileges, and validate impact before
using it in production.
SET PAGESIZE 200
SET LINESIZE 260
SET TRIMSPOOL ON
SET TAB OFF
SET VERIFY OFF
SET FEEDBACK ON
COLUMN snap_id FORMAT 999999999 HEADING 'SNAP_ID'
COLUMN sql_id FORMAT A13 HEADING 'SQL_ID'
COLUMN plan_hash_value FORMAT 999999999999999 HEADING 'PLAN_HASH'
COLUMN end_interval_time FORMAT A20 HEADING 'END_INTERVAL'
COLUMN executions_delta FORMAT 999,999,999 HEADING 'EXECS_DELTA'
COLUMN "Elapsed Avg ms" FORMAT 999,999,999.9
COLUMN "CPU Avg ms" FORMAT 999,999,999.9
COLUMN "IO Avg ms" FORMAT 999,999,999.9
COLUMN "Avg Buffer Gets" FORMAT 999,999,999.9
COLUMN "Avg Disk Reads" FORMAT 999,999,999.9
COLUMN "Avg Physical Writes in MB" FORMAT 999,999,999.9
COLUMN "Avg Physical Reads in MB" FORMAT 999,999,999.9
COLUMN "Avg Rows Processed" FORMAT 999,999,999.9
SELECT
snap_id,
sql_id,
plan_hash_value,
TO_CHAR(end_interval_time, 'YYYY-MM-DD HH24:MI:SS') end_interval_time,
executions_delta,
round(elapsed_time_delta /(nonzeroexecutions * 1000), 1) "Elapsed Avg ms",
round(cpu_time_delta /(nonzeroexecutions * 1000), 1) "CPU Avg ms",
round(iowait_delta /(nonzeroexecutions * 1000), 1) "IO Avg ms",
round(buffer_gets_delta /(nonzeroexecutions * 1000), 1) "Avg Buffer Gets",
round(disk_reads_delta /(nonzeroexecutions * 1000), 1) "Avg Disk Reads",
round(trunc(physical_write_bytes_delta /(nonzeroexecutions * 1024 * 1024)),
1) "Avg Physical Writes in MB",
round(trunc(physical_read_bytes_delta /(nonzeroexecutions * 1024 * 1024)),
1) "Avg Physical Reads in MB",
round(rows_processed_delta /(nonzeroexecutions), 1) "Avg Rows Processed"
FROM
(
SELECT
ss.snap_id,
ss.sql_id,
ss.plan_hash_value,
sn.end_interval_time,
ss.executions_delta,
CASE ss.executions_delta WHEN 0 THEN 1 ELSE ss.executions_delta END nonzeroexecutions,
elapsed_time_delta,
cpu_time_delta,
iowait_delta,
buffer_gets_delta,
disk_reads_delta,
physical_write_bytes_delta,
physical_read_bytes_delta,
rows_processed_delta
FROM
dba_hist_sqlstat ss,
dba_hist_snapshot sn
WHERE
ss.sql_id = 'd2b04u19u9khc'
AND ss.snap_id = sn.snap_id
AND ss.instance_number = sn.instance_number
)
WHERE
elapsed_time_delta > 0
ORDER BY
snap_id DESC;