oracle索引:教你清除Oracle中无用的索引改善DML

="t18"> DML性能低下其中最严重原因的是无用索引存在所有SQL插入更新和删除操作在它们需要在每行数据被改变时修改大量索引时候会变得更慢 许多Oracle 治理人员只要看见在个SQL 查询WHERE语句出现了话就会为它分配索引虽然这个思路方法能够让SQL运行得更快速但是基于功能Oracle 索引使得数据库治理人员有可能在数据表行上过度分配索引过度分配索引会严重影响要害Oracle 数据表性能 在Oracle9i出现以前没有办法确定SQL查询没有使用索引让我们看看Oracle9i提供了什么样思路方法让你找到这些索引并删除它们 过程是相当简单Oracle9i有个工具能够让你使用ALTER INDEX命令监视索引使用然后你可以查找这些没有使用索引并从数据库里删除它们 下面是段脚本它能够打开个系统中所有索引监视功能: pages 999; heading off;
spoolrun_monitor.sqlselect'alter
index 'owner'.'index_name'
monitoring usage;'fromdba_indexeswhereowner
not in ('SYS','SYSTEM','PERFSTAT');
spool off;@run_monitor 你需要等待段时间直到在数据库上运行了足够多SQL语句以后然后你就可以查询新V$OBJECT_USAGE视图 selectindex_name,table_name,mon,
usedfromv$object_usage; 在V$OBJECT_USAGE有列被称作USED值是YES或者NO不幸它不会告诉你Oracle使用了这个索引多少次但是这个工具对于找出没有使用索引还是很有用

Tags:  oracle强制索引 oracle删除索引 oracle创建索引 oracle索引

延伸阅读

最新评论

发表评论