收藏 分销(赏)

清除Oracle中无用索引-改善DML性能.doc

上传人:人****来 文档编号:9736697 上传时间:2025-04-05 格式:DOC 页数:1 大小:13KB 下载积分:5 金币
下载 相关 举报
清除Oracle中无用索引-改善DML性能.doc_第1页
第1页 / 共1页
本文档共1页,全文阅读请下载到手机保存,查看更方便
资源描述
  DML性能低下,其中最严重的原因之一是无用索引的存在。所有SQL的插入,更新和删除操作在它们需要在每一行数据被改变时修改大量索引的时候会变得更慢。   许多Oracle 管理人员只要看见在一个SQL 查询的WHERE语句出现了一列的话就会为它分配索引。虽然这个方法能够让SQL运行得更快速,但是基于功能的Oracle 索引使得数据库管理人员有可能在数据表的行上过度分配索引。过度分配索引会严重影响关键Oracle 数据表的性能。   在Oracle9i出现以前,没有办法确定SQL查询没有使用的索引。让我们看看Oracle9i提供了什么样的方法让你找到这些索引并删除它们。   过程是相当简单的。Oracle9i有一个工具能够让你使用ALTER INDEX命令监视索引的使用。然后你可以查找这些没有使用的索引并从数据库里删除它们。   下面是一段脚本,它能够打开一个系统中所有索引的监视功能:   set pages 999;   set heading off;   spoolrun_monitor.sql   select    'alter index '||owner||'.'||index_name||' monitoring usage;'   from    dba_indexes   where    owner not in ('SYS','SYSTEM','PERFSTAT');   spool off;   @run_monitor   你需要等待一段时间直到在数据库上运行了足够多的SQL语句以后,然后你就可以查询新的V$OBJECT_USAGE视图。   select    index_name,    table_name,    mon,    used   from    v$object_usage;   在V$OBJECT_USAGE有一列被称作USED,它的值是YES或者NO。不幸的是,它不会告诉你Oracle使用了这个索引多少次,但是这个工具对于找出没有使用的索引还是很有用的。   更多信息请查看IT技术专栏   
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服