• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

寻找没有使用的索引_oracle

oracle 搞代码 7年前 (2018-06-14) 129次浏览 已收录 0个评论

那些存在但是没有使用的索引是以个导致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

http://www.gaodaima.com/31522.html寻找没有使用的索引_oracle

‘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

欢迎大家阅读《寻找没有使用的索引_oracle,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:寻找没有使用的索引_oracle

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址