Files
oracle/vg/awr_index_usage_monitoring.sql
2026-03-12 21:23:47 +01:00

74 lines
2.2 KiB
SQL

@@header
PROMPT *********************
PROMPT SCRIPT INCOMPLETE
PROMPT *********************
set term off
/*
*
* Author : Vishal Gupta
* Purpose : Display index usage from AWR data.
* Parameters : NONE
*
*
* Revision History:
* ===================
* Date Author Description
* --------- ------------ -----------------------------------------
* 26-May-12 Vishal Gupta Created
*
*
*/
set term on
COLUMN table_owner HEADING "Table Owner" FORMAT a20
COLUMN table_name HEADING "Table Name" FORMAT a20
COLUMN index_name HEADING "Index Name" FORMAT a20
COLUMN Monitoring HEADING "Monitoring" FORMAT a10
COLUMN Used HEADING "Used" FORMAT a4
SELECT object_name
, sql_id
, ROUND(avg(daily_exections)) avg_daily_exections
FROM
(
SELECT p.object_name
, p.sql_id
--, p.plan_hash_value
, to_char(end_interval_time,'YYYY-MM-DD') Day
, SUM(ss.executions_delta) daily_exections
FROM dba_hist_sql_plan p
, dba_hist_sqlstat ss
, dba_hist_snapshot s
WHERE s.dbid = ss.dbid
AND s.instance_number = ss.instance_number
AND s.snap_id = ss.snap_id
AND ss.plan_hash_value = p.plan_hash_value
AND ss.dbid = p.dbid
AND ss.sql_id = p.sql_id
AND (p.object_name LIKE 'TRN_IX%' OR p.object_name = 'TRN_UK1')
AND p.object_name = 'TRN_IX13'
--AND s.end_interval_time BETWEEN TO_DATE('01-Jun-12','DD-Mon-YY') and TO_DATE('30-Jun-12','DD-Mon-YY')
GROUP BY p.object_name
, p.sql_id
--, p.plan_hash_value
, to_char(end_interval_time,'YYYY-MM-DD')
-- having sum(ss.executions_delta) > 1
ORDER BY p.object_name
, p.sql_id
--, p.plan_hash_value
, sum(ss.executions_delta) desc
)
GROUP BY object_name
, sql_id
--HAVING ROUND(avg(daily_exections)) > 10
ORDER BY object_name
, sql_id
, avg_daily_exections desc
;
@@footer