首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 开发技术 >> 正文

Oracle9i中如何监视索引并清除监视信息

  一般情况下,相对于DML操作,索引对于数据库是一个性能的负担。假如索引没有被合理有效的使用,那么它的存在性就必须重新考虑。

  1. Oracle9i开始,Oracle允许监视索引的使用:

SQL> connect scott/tiger@conner
Connected to Oracle9i Enterprise Edition Release 9.2.0.4.0 
Connected as scott

SQL> select index_name from user_indexes;

INDEX_NAME
------------------------------
PK_DEPT
PK_EMP

开始监视pk_dept索引:

SQL> alter index pk_dept monitoring usage;

Index altered

在此过程中,如果查询使用索引,将会记录下来:

SQL> select * from dept where deptno=10;

DEPTNO DNAME          LOC
------ -------------- -------------
    10 ACCOUNTING     NEW YORK

停止监视:

SQL> alter index pk_dept nomonitoring usage;

Index altered

查询索引使用情况,YES表示在监视过程中索引被使用到:

SQL> select * from v$object_usage;

INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING    END_MONITORING
---------- ---------- ---------- ---- ------------------- -------------------
PK_DEPT    DEPT       NO         YES  10/28/2004 10:55:19 10/28/2004 10:55:47

SQL>

  2.Oracle9i的"Bug"

  9205之前,假如你不慎监控了SYS.I_OBJAUTH1索引,而且不幸在重起数据库之前没有停止它,那么你的数据库将会无法启动,并且不会给出任何的错误信息。

  下面的这条语句可以很容易的再现这个问题:

  'ALTER INDEX SYS.I_OBJAUTH1 MONITORING USAGE'

  假如有了足够好的备份,我们可以尝试一下:

  注意:(请不要拿你现在的生产数据库来进行测试)。

[oracle@jumper oradata]$ sqlplus "/ as sysdba
"SQL*Plus: Release 9.2.0.4.0 - Production on Sat Dec 4 10:09:30 2004

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

SQL> alter index SYS.I_OBJAUTH1 monitoring usage ;

Index altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 80811208 bytes
Fixed Size 451784 bytes
Variable Size 37748736 bytes
Database Buffers 41943040 bytes
Redo Buffers 667648 bytes
Database mounted.

[1] [2] 下一页

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 社区讨论
 博客论点