知识大全 Oracle9i新特性-索引监视及注意事项[修正版]
Posted 索引
篇首语:面对艰难困苦,懦弱者被磨去棱角;勇敢者将意志品质磨砺得更为坚强。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle9i新特性-索引监视及注意事项[修正版]相关的知识,希望对你有一定的参考价值。
Oracle9i新特性-索引监视及注意事项[修正版] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
对于DML操作来说 索引对于数据库是一个性能负担 如果索引没有被有效的使用 那么其存在性就值得从新考虑 从Oracle i开始 Oracle允许你监视索引的使用:
SQL> connect scott/tiger@connerConnected to Oracle i Enterprise Edition Release Connected as scott
SQL> select index_name from user_indexes;
INDEX_NAME PK_DEPTPK_EMP
开始监视pk_dept索引:
SQL> alter index pk_dept monitoring usage;
Index altered
在此过程中 如果查询使用索引 将会记录下来:
SQL> select * from dept where deptno= ;
DEPTNO DNAME LOC 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 / / : : / / : :
SQL>
Oracle i的Bug
在 之前 如果你不慎监控了SYS I_OBJAUTH 索引 并且不幸在重起数据库之前没有停止它 那么你的数据库将会无法启动 并且不会给出任何错误信息
以下这条简单的语句可以轻易再现这个问题:
ALTER INDEX SYS I_OBJAUTH MONITORING USAGE
如果你有了足够好的备份(严重警告 请不要拿你的生产数据库进行测试) 你可以尝试一下:
[oracle@jumper oradata]$ sqlplus / as sysdba SQL*Plus: Release Production on Sat Dec : :
Copyright (c) Oracle Corporation All rights reserved
Connected to:Oracle i Enterprise Edition Release ProductionWith the Partitioning optionJServer Release Production
SQL> alter index SYS I_OBJAUTH monitoring usage ;
Index altered
SQL> shutdown immediate;Database closed Database dismounted ORACLE instance shut down SQL> startupORACLE instance started
Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytesDatabase mounted
此时 数据库挂起 而且不会有任何提示 在alert<sid> log文件中 你可以看到:
[oracle@jumper bdump]$ tail f alert_conner log Completed: ALTER DATABASE MOUNTSat Dec : : ALTER DATABASE OPENSat Dec : : LGWR: Primary database is in CLUSTER CONSISTENT modeThread opened at log sequence Current log# seq# mem# : /opt/oracle/oradata/conner/redo logSuccessful open of redo thread Sat Dec : : SMON: enabling cache recoverySat Dec : : Restarting dead background process QMN QMN started with pid=
然后数据库将会停在此处
如果不知道此bug存在 你可能会一筹莫展的
现在你能做的就是从备份中恢复 或者升级
[oracle@jumper oradata]$ rm rf conner[oracle@jumper oradata]$ cp R connerbak/ conner[oracle@jumper oradata]$ sqlplus / as sysdba SQL*Plus: Release Production on Sat Dec : :
Copyright (c) Oracle Corporation All rights reserved
Connected to an idle instance
SQL> startupORACLE instance started
Total System Global Area bytesFixed Size bytesVariable Size bytesDatabase Buffers bytesRedo Buffers bytesDatabase mounted Database opened SQL>
在特殊的情况下 你可能需要清除这个v$object_usage视图中的信息
Oracle的说法是 在下一次收集该对象的索引使用情况时会自动覆蓋上一次的信息 不提供清除手段
稍微研究了一下
v$object_usage是基于以下基表建立起来的:
create or replace view v$object_usage(index_name table_name monitoring used start_monitoring end_monitoring)asselect io name t name decode(bitand(i flags ) NO YES ) decode(bitand(ou flags ) NO YES ) ou start_monitoring ou end_monitoringfrom sys obj$ io sys obj$ t sys ind$ i sys object_usage ouwhere io owner# = userenv( SCHEMAID ) and i obj# = ou obj# and io obj# = ou obj# and t obj# = i bo#/
注意到v$object_usage关键信息来源于OBJECT_USAGE表 另外我们可以注意一下 此处v$object_usage的查询基于userenv( SCHEMAID )建立 所以以不同用户登录 你是无法看到其他用户的索引监视信息的 即使是dba 但是可以从object_usage表中得到
SQL> select * from v$object_usage;
INDEX_NAME TABLE_NAME MON USE START_MONITORING END_MONITORING PK_DEPT DEPT NO YES / / : : / / : :
SQL> select * from object_usage;select * from object_usage *ERROR at line :ORA : table or view does not exist
SQL> connect /as sysdbaConnected SQL> /
OBJ# FLAGS START_MONITORING END_MONITORING / / : : / / : :
实际上我们清除了object_usage表的记录 实际上也就清空了v$object_usage的信息
SQL> delete from object_usage;
row deleted
SQL> mit;
Commit plete
SQL> select * from v$object_usage;
no rows selected
cha138/Article/program/Oracle/201311/17979相关参考
Oracle9i自动PGA管理的新特性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Orac
Oraclei电子商务平台 Oraclei通过提供旨在用于电子商务环境的一系列特定功能和产品束像Oraclei那样继续
在Oracle9i里基于函数的仅索引扫描 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Orac
作者gototop 索引可以加快查询的速度但索引会占用许多存储空间在插入和删除行的时候索引还会引入额外的开销因此确保索引得到有效利用是我们很关注的一个问题在Oraclei之前要知道一个索引是
11G的不可见索引 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 不可见索引是G的新特性不可见并
知识大全 Oracle 9i新特性研究系列之四 -- 延续性初始化参数文件
Oracle9i新特性研究系列之四--延续性初始化参数文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
教你怎么样卸载Oracle9i 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在win企业版操作
《刑法修正案(八)》对假释有新修改,下列关于假释的说法正确的是
《刑法修正案(八)》对假释有新修改,下列关于假释的说法正确的是_____。A、假释只适用于被判处有期徒刑或者无期徒刑的犯罪分子B、被判处有期徒刑的犯罪分子,执行原判刑期1/2以上,才可以适用假释C、被
调节汽室压力及各段抽汽压力统称为监视段压力。凝汽式汽轮机除末一、二级以外,调节汽室压力及各段抽汽压力与蒸汽流量近似成正比关系,运行中监视这些压力的变化可以判断新蒸汽流量的变化,负荷的高低以及通流部
调节汽室压力及各段抽汽压力统称为监视段压力。凝汽式汽轮机除末一、二级以外,调节汽室压力及各段抽汽压力与蒸汽流量近似成正比关系,运行中监视这些压力的变化可以判断新蒸汽流量的变化,负荷的高低以及通流部