SELECT
i.index_name,
i.table_name,
u.used,
u.start_monitoring,
u.end_monitoring,
ROUND(s.bytes / 1024 / 1024, 2) AS size_mb,
LISTAGG(c.column_name, ', ') WITHIN GROUP (ORDER BY c.column_position) AS columns
FROM
v$object_usage u
JOIN
dba_indexes i
ON u.index_name = i.index_name AND u.table_name = i.table_name AND i.owner = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')
JOIN
dba_ind_columns c
ON c.index_name = i.index_name AND c.index_owner = i.owner
LEFT JOIN
dba_segments s
ON s.segment_name = i.index_name AND s.owner = i.owner AND s.segment_type = 'INDEX'
WHERE
u.used = 'NO'
GROUP BY
i.index_name, i.table_name, u.used, u.start_monitoring, u.end_monitoring, s.bytes
ORDER BY
size_mb DESC NULLS LAST;





0 comments:
Post a Comment