首页 > 数据库 > Oracle > 正文

在Oracle中监控和跟踪索引使用情况

2024-08-29 13:50:50
字体:
来源:转载
供稿:网友
在 Oracle9i 之前,监控索引使用的唯一方法是执行他们的程序库缓中的所有SQL,然后手工记下所有被使用的索引。 最近的研究发现 Oracle 数据库所使用的索引从来没有达到过可用索引数的1/4,或者其用法与其开始设计的意图不相同。未用的索引浪费空间,而且还会降低 DML 的速度,尤其是 UPDATE 和 INSERT 语句。 Oracle9i提供一个简单的方法来打开和关闭索引使用跟踪,那就是MONITORING USAGE 子句:
    alter index cust_name_idx monitoring usage;  alter index cust_name_idxnomonitoring usage;
   这个命令使用V$OBJECT_USAGE 视图和 USAGE 字段来判定索引是否被访问过。你可能期望 USAGE 字段是一个数字值,这样你就可以知道索引被使用的次数,但不幸的是,它的取值只为YES 或NO。 但不管怎样,假如你接手一个以前开发的数据库,而且老数据库在没有考虑到 SQL 访问表的情况下创建了索引,那么这个工具对你是很有用的。INDEX MONITORING 特性的开销非常小,而对定位和丢弃不需要的索引很有帮助。 下面是一个打开整个方案的索引监控的简单 SQL*Plus 脚本: 在 Oracle9i 之前,监控索引使用的唯一方法是执行他们的程序库缓中的所有SQL,然后手工记下所有被使用的索引。
    set pages 999  set heading off    spool run_mon.sql    select    'alter index '    index_name    ' monitoring usage;'  from    dba_indexes  where    owner = 'SCOTT';    spool off    @run_mon


上一篇:Oracle数据库中COALESCE函数使用详解

下一篇:Oracle数据库中可移动的表空间详解

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
学习交流
热门图片

新闻热点

疑难解答

图片精选

网友关注