论坛登陆 注册 文章专区 笑话频道 影视频道 投稿文章 旧版浏览
首页 | 页界资讯 | 网络应用 | 软件应用 | 组网技术 | 网络原理 | 聊天通讯 | 网管知识 | 帮助
笑话 | 操作系统 | 注 册 表 | 编程开发 | 数 据 库 | 媒体动画 | 网页设计 | 图形图象 | 地图
论坛 | 网络安全 | 安全防范 | 服 务 器 | 硬件学堂 | 路由技术 | 搜索研究 | 站长经验 | 投稿
影院 | 教育频道 | 特色专题 | 精文荟萃 | 注 册 码 | 论坛社区 | 网站地图 | 广告服务 | 旧版
设为首页 加入收藏
当前位置:首页>>文章>>数据库>>Oracle>>正文

Oracle9i中监视索引的使用

www.xker.com 作者: 来源:uml.org.cn 加入日期:2006-1-16 11:06:49

【问题提问、论坛交流】介绍

DBA和开发者都喜欢索引它们可以加速查询搜索,特别是在一个数据仓库的环境中,因为这时数据库会接收到许多ad-hoc请求要避免全表搜索,我们一般在每个可能被搜索的列中建立索引不过索引会占用许多的表空间;在许多的情况下,索引比被索引的表消耗更多的存储空间在插入和删除行的时候,索引还会引入额外的开销在Oracle9i之前,要知道一个索引是否被使用是困难的,因此许多数据库都有许多没用的索引这篇文章的目的就是向你介绍通过Oracle9i中的新特性来辨别未使用的索引

辨别未使用的索引

Oracle9i提供了一个新的技术来监控索引以辨别索引有否被使用要开始监控一个索引的使用,使用这个命令:

ALTER INDEX index_name MONITORING USAGE;


要停止监控一个索引,输入:
ALTER INDEX index_name NOMONITORING USAGE;


在v$objec_usage视图中包含有索引监控的使用信息

CREATE OR REPLACE VIEW SYS.V$OBJECT_USAGE

(

INDEX_NAME,

TABLE_NAME,

MONITORING,

USED,

START_MONITORING,

END_MONITORING

)

AS

select io.name, t.name,

decode(bitand(i.flags, 65536), 0, NO, YES),

decode(bitand(ou.flags, 1), 0, NO, YES),

ou.start_monitoring,

ou.end_monitoring

from sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou

where io.owner# = userenv(SCHEMAID)

and i.obj# = ou.obj#

and io.obj# = ou.obj#

and t.obj# = i.bo#

/

COMMENT ON TABLE SYS.V$OBJECT_USAGE IS

Record of index usage

/

GRANT SELECT ON SYS.V$OBJECT_USAGE TO "PUBLIC"

/


该视图显示了由数据库中收集来的索引使用统计以下就是该视图中的列的描述:

 INDEX_NAME: sys.obj$.name 中的索引名字

 TABLE_NAME: sys.obj$obj$name 中的表名

 MONITORING: YES (索引正在被监控), NO (索引没有被监控)

 USED: YES (索引已经被使用过), NO (索引没有被使用过)

 START_MONITORING: 开始监控的时间

 END_MONITORING: 结束监控的时间

所有被使用过至少一次的索引都可以被监控并显示到这个视图中不过,一个用户只可以接收它自己模式中的索引使用Oracle并没有提供一个视图来接收所有模式中的索引要接收所有模式的索引使用,以SYS用户登录并且运行以下的脚本(注意:这并不是Oracle提供的一个脚本v$all_object_usage是一个自定义的视图它包含多一个列,即索引的拥有者)

$ cat all_object_usage.sql

CREATE OR REPLACE VIEW SYS.V$ALL_OBJECT_USAGE

(

OWNER,

INDEX_NAME,

TABLE_NAME,

MONITORING,

USED,

START_MONITORING,

END_MONITORING

)

AS

select u.name, io.name, t.name,

decode(bitand(i.flags, 65536), 0, NO, YES),

decode(bitand(ou.flags, 1), 0, NO, YES),

ou.start_monitoring,

ou.end_monitoring

from sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou, sys.user$ u

where i.obj# = ou.obj#

and io.obj# = ou.obj#

and t.obj# = i.bo#

and io.owner# = u.user#

/

COMMENT ON TABLE SYS.V$ALL_OBJECT_USAGE IS

Record of all index usage - developed by Daniel Liu

/

GRANT SELECT ON SYS.V$ALL_OBJECT_USAGE TO "PUBLIC"

/

CREATE PUBLIC SYNONYM V$ALL_OBJECT_USAGE

FOR SYS.V$ALL_OBJECT_USAGE

/


每次你使用MONITORING USAGE,视图就会为特别的索引而复位所有以前的使用信息都会被清除和复位,并且会记录下一个新的启动时间每次你执行NOMONITORING USAGE,就不会进行进一步的监控;监视期间的结束时间就会被记录下来如果你删除一个正在被监控的索引,该索引的相关信息就会由V$OBJECT_USAGE和V$ALL_OBJECT_USAGE视图中删除

本新闻共3页,当前在第1页  1  2  3  

编辑:xker.com

上一篇:使用Oracle实现实时通信
下一篇:没有了
关闭窗口】【浏览次数:】【发送给好友】【收藏此页
相关文章
·使用Oracle实现实时通信·Oracle SQL 内置函数大全·Oracle实用技巧
推荐文章 最新文章 热门文章
·Oracle9i中监视索引的使用
·使用Oracle实现实时通信
·制作MP3播放器TXT图书之三剑客
·什么是IPTV
·全面控制Win XP的安装进度过程
·电子图书制作方法之EXE格式篇
·用VC6.0实现快捷方式中的查找目标功能
·实战网络服务器安全配置技巧
·在Java SE中使用Hibernate框架
·ASP.NET入门随想之多态、接口与委托
·Windows虚拟内存加速密籍
·性能“脱胎换骨”骗术 解密优化骗局
·使用 MySQL 开始 PHP 会话
·AJAX及使用E4X编写Web服务脚本
·关于ASP,ASP.NET,VB.NET里的MD5加密函
·Oracle9i中监视索引的使用
·使用Oracle实现实时通信
·千万不能更新的QQ网络硬盘
·遵循国际网站标准进行网站设计和改善
·制作MP3播放器TXT图书之三剑客
·SQL注入技术和跨站脚本攻击的检测
·如何从Html页面中提取所有汉字
·ASP中实现的类似URLEncode的编码函数
·为你的程序创建一个控制台
·处理较长文章,添加... 效果的解决方
·网吧资源有效利用之——带宽管理
·怎么写dos病毒
·某知名大企业的教训--慎用AJAX框架
·做了两个月ajax,总结一些小经验
·什么是IPTV
·个人简历表格
·免费代理IP(每日更新)
·QQ密码丢失后能做的事情:快速找回密码
·WinRAR 3.51 注册码
·Norton AntiVirus 2006 注册码(激活
·系统优化 专题
·找回QQ密码的注意事项 
·史上最强QQ个人档案资料欣赏
·最经典的黑客入门教材
·求职简历封皮
·怎样查找对方的IP地址
·FlashFXP 3.3.1 build 1089注册码
·2005最新最全注册码集中营(11月更新)
·应届毕业生求职信
·ACDSee v8.0注册码
评论 本站声明
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设为首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2003-2006 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网 冀ICP备05002857号