Tuesday, 24 June 2025

Filled under:

 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