我们知道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;
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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15877397/viewspace-1046907/