网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  清除Oracle中无用索引 改善DML性能     
  文章作者:未知  文章来源:未知  
  查看:148次  录入:管理员--2007-04-11  
 

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使用了这个索引多少次,但是这个工具对于找出没有使用的索引还是很有用的。

 
 
上一篇: 教你通过任务和管道异步调用存储过程    下一篇: Oracle数据库中基本动态Web开发和应用
  相关文档
对一些代码加密后再放到oracle数据库中 03-06
oracle 10g中scn与timestamp的斗转星移 04-28
细化解析如何共享Oracle数据库身份空间 09-01
解析:教你快速的掌握em乱码的解决方法 11-15
实例讲解oracle中一些关于权限的数据字典 03-17
在单机上创建物理oracle数据库9i standby 07-17
详细讲解oracle数据库10g rman的备份过程 05-07
在Oracle 9i中Form Builder使用树心得 07-07
轻松掌握分布式数据库全局名与数据库链 09-29
oracle数据库中获取数据的存储过程示例 08-05
必须引起dba重视的oracle数据库碎片 (1) 05-12
教你轻松掌握Oracle内存结构 09-29
在设计数据库时如何选择正确的数据类型 05-08
轻松解决启用数据库复制时出现的18483错误 05-14
数据库Oracle 11g Alert Log 的新变化 09-01
Oracle数据库物理文件空间设置方法 04-12
教你快速的解决oracle缓冲区忙等待事件 11-15
讲解oracle系统中用户权限的赋予和查看 04-23
讲解杀死oracle数据库死锁进程的具体方法 06-24
临时表在特定的条件下同样可以灵活易用 05-16
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息