• 文字广告位
  • 文字广告位
  • 文字广告位
您现在的位置: 站长手册 >> 数据库 >> ORACLE >> 正文
站内搜索
Google
寻找没有使用的索引
        ★★★ 【字体:

寻找没有使用的索引

雅虎收藏夹 百度收藏 Google书签 Yahoo书签 新浪ViVi 搜狐网摘 365Key网摘 天极网摘 diglog 和讯网摘 POCO网摘 YouNote网摘 博拉网 天下图摘 Del.icio.us digg reddit spurl BlinkList blogmarks
人气: 来源:网络 作者:佚名 所属栏目:ORACLE [切换到繁體中文]

那些存在但是没有使用的索引是以个导致DML语言执行效率低下的严重问题,所有的 SQL语句如:INSERTS、UPDATES、和DELETES当它们要更新表中含有很多索引的行时将运行得很慢。ORACLE专业人士看到一列应用到SQL查询语句的WHERE语句时将会重新设置索引,这有可能使得SQL语句运行更快。ORACLE提供的索引功能可能会重新配置索引到这些表中的列,这种重新配置的索引将削弱装载ORACLE自关联表的执行效率。在ORACLE9i前,没有办法表示哪些SQL查询语句没有使用的索引。现在我们通过ORACLE9i提供的方法可以找到和删除这些没有使用的索引。ORACLE9i提供一个工具让你使用ALTER INDEX 命令来监控索引使用情况。你可以定位和查找那些没有使用的索引然后从数据库中删除。

下面一段代码将打开对系统中使用的索引的监控。

Set pages 999;

Set heading off;

Spool run_monitor.sql

Select

‘alter index ‘||owner||’.’||index_name||’ monitoring usage;’

from

   dba_indexes

where

   ower 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使用这个索引要多少时间,但是这个工具有利于来研究不使用的索引。

INDEX_NAME                        TABLE_NAME   MON     USED

---------------                           -------------------   ---------    ---------

CUSTOMER_LAST_NAME_IDX         CUSTOMER     YES      NO

 

网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
姓 名: *(必填项) ·注册用户·
Email: QQ号:
评 分: 1分 2分 3分 4分 5分
  • 您可以发表评论支持你喜欢的文章。
  • 请遵守《互联网电子公告服务管理规定》
  • 请遵守中华人民共和国各项有关法律法规。
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 评论人需对自己在使用评论过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表个人观点,与本网站立场无关。
站内文章搜索
·最新文章      
·热门文章      
| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | | 京ICP备 05004866号 |
版权所有 2007-2008 站长手册 WWW.ZZSC.ORG 业务联系 zzsc.org#gmail.com