oracle

Oracle 使われていないINDEXを調べる

インデックスが利用されているのか調べるには、事前に監視対象として登録しておかないと分からなかったですが、12.2からDBA_INDEX_USAGEを見れば簡単に調べる事ができるようになっています。

select i.OBJECT_ID,i.NAME,i.OWNER,i.TOTAL_ACCESS_COUNT,i.TOTAL_EXEC_COUNT,i.TOTAL_ROWS_RETURNED,i.LAST_USED
,d.TABLE_OWNER,d.TABLE_NAME,o.CREATED,o.LAST_DDL_TIME
  from DBA_INDEX_USAGE i 
inner join dba_users u  on i.OWNER = u.USERNAME and u.COMMON ='NO'
inner join dba_indexes d on i.OWNER = d.OWNER and i.NAME = d.INDEX_NAME
inner join dba_objects o on i.OWNER = o.OWNER and i.NAME = o.OBJECT_NAME and o.OBJECT_TYPE ='INDEX'
order by i.LAST_USED desc
;

スポンサーリンク
タイトルとURLをコピーしました