Oracle 索引监控与外键索引

php中文网
发布: 2016-06-07 17:27:33
原创
1534人浏览过

Oracle 监控索引特性为我们提供了一个大致判断索引是否被使用的情形。之所以这么说,是因为在Oracle 10g 中收集统计信息时会导致

oracle 监控索引特性为我们提供了一个大致判断索引是否被使用的情形。之所以这么说,是因为在oracle 10g 中收集统计信息时会导致索引被监控,此并非sql语句而产生。而在11g则不会出现类型的情形。其次对于存在子表存在外键的情形,对于主表进行操作时是否会导致索引被监控呢?下面描述的是这个话题。

1、普通监控索引的情形

--演示环境
SQL> select * from v$version where rownum

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

--创建主表 
SQL> create table ptb(deptno number constraint ptb_pk primary key,dname varchar2(20));

Table created.

--从scott.dept帐户复制数据
SQL> insert into ptb select deptno,dname from dept;

4 rows created.

SQL> commit;

Commit complete.

--开启索引监控
SQL> alter index ptb_pk monitoring usage;

--为主表收集统计信息
SQL> exec dbms_stats.gather_table_stats('SCOTT','PTB',cascade=>true);

PL/SQL procedure successfully completed

SQL> select * from v$object_usage where index_name='PTB_PK';

INDEX_NAME                    TABLE_NAME                MON Use START_MONITORING    END_MONITORING
------------------------------ ------------------------- --- --- ------------------- -------------------
PTB_PK                        PTB                      YES NO  03/22/2013 17:15:37

--注意上面的情形,收集统计信息时,索引被使用没有被监控到,,在10g中则会被监控到
--下面开启autotrace
SQL> set autot trace exp;

SQL> select * from ptb where deptno=10;

Execution Plan
----------------------------------------------------------
Plan hash value: 3991869509

--------------------------------------------------------------------------------------
| Id  | Operation                  | Name  | Rows  | Bytes | Cost (%CPU)| Time    |
--------------------------------------------------------------------------------------
|  0 | SELECT STATEMENT            |        |    1 |    12 |    1  (0)| 00:00:01 |
|  1 |  TABLE ACCESS BY INDEX ROWID| PTB    |    1 |    12 |    1  (0)| 00:00:01 |
|*  2 |  INDEX UNIQUE SCAN        | PTB_PK |    1 |      |    0  (0)| 00:00:01 |
--------------------------------------------------------------------------------------

SQL> set autot off;
SQL> select * from v$object_usage where index_name='PTB_PK'; --索引使用被监控到

INDEX_NAME                    TABLE_NAME                MON Use START_MONITORING    END_MONITORING
------------------------------ ------------------------- --- --- ------------------- -------------------
PTB_PK                        PTB                      YES YES 03/22/2013 17:15:37

linux

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号