Oracle資料庫監控Index的使用情況

yanghz發表於2011-03-07
我們知道index帶來查詢效能提升的同時,也相應帶來了inset,update,delete的高開銷,特別是大表更新是開銷很大的一件事情,因此,如果能夠確認有不會用到的index,而且也不是外來鍵的話,可以刪除以節省資源[@more@]1,把index納入監控範圍
alter index index_name monitoring usage;

生成監控所有index使用的sql:
select 'alter index '||index_name||' monitoring usage;' from user_indexes;

2,查詢index的監控和使用情況情況
select * from v$object_usage where used='YES';
select * from v$object_usage where used='YES' and monitoring='YES';

3,監控是要消耗資源的,確認使用後,取消對index的監控
alter index index_name nomonitoring usage;

取消所有index的使用監控
select 'alter index '||index_name||' nomonitoring usage;' from v$object_usage where used='YES' and monitoring='YES';

生成監控index使用sql:
select 'alter index '||index_name||' monitoring usage;' from user_indexes;

4,查詢大表未使用到的index
select o.table_name,o.index_name,t.num_rows from v$object_usage o,user_tables t
where t.table_name=o.table_name and o.used='NO'
order by t.num_rows desc;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15877397/viewspace-1046907/,如需轉載,請註明出處,否則將追究法律責任。

相關文章