v$object_usage可以监控索引的使用情况

本文介绍如何使用v$object_usage视图来监控Oracle数据库中索引的使用情况,包括开启和关闭索引监控的方法。

v$object_usage可以用来监控系统中索引的使用情况

 

SQL> conn yang/yang

已连接。

 

SQL> create table test(x int,y int);

表已创建。

 

SQL> alter table  test add constraint index_test_pk primary key(x);

表已更改。

 

SQL> select * from v$object_usage;

未选定行

 

监控索引的使用:

SQL> alter index index_test_pk  monitoring usage; 

索引已更改。

 

v$object_usage有了记录,但USENO

SQL> select * from v$object_usage;

INDEX_NAME                     TABLE_NAME                     MON USE

------------------------------ ------------------------------ --- ---

START_MONITORING    END_MONITORING

------------------- -------------------

INDEX_TEST_PK                  TEST                           YES NO

05/28/2010 11:20:10

 

SQL> select * from test where x=1;

未选定行

 

USE修改为YES

SQL> select * from v$object_usage;

INDEX_NAME                     TABLE_NAME                     MON USE

------------------------------ ------------------------------ --- ---

START_MONITORING    END_MONITORING

------------------- -------------------

INDEX_TEST_PK                  TEST                           YES YES

05/28/2010 11:20:10

 

sys用户登录,v$object_usage却没有记录

SQL> conn /as sysdba

已连接

SQL> select * from v$object_usage;

未选定行

 

因为v$object_usage只包括当前用户的索引使用记录,如果需要查出所有用户的索引使用记录,使用下面的sql,这个sql来自DBA日记:

SQL> select u.name owner, io.name index_name, t.name table_name,

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

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

  4             ou.start_monitoring start_monitoring,

  5             ou.end_monitoring   end_monitoring

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

 

  7           where i.obj# = ou.obj#

  8           and io.obj# = ou.obj#

  9           and t.obj# = i.bo#

 10           and u.user# = io.owner#

 11  ;

 

OWNER                          INDEX_NAME

------------------------------ ------------------------------

TABLE_NAME                     MON USE START_MONITORING    END_MONITORING

------------------------------ --- --- ------------------- -------------------

YANG                           INDEX_TEST_PK

TEST                           YES YES 05/28/2010 11:20:10

 

 

SQL> conn yang/yang

已连接。

 

取消对索引的监控

SQL> alter index index_test_pk nomonitoring usage;

索引已更改。

 

SQL> select * from v$object_usage;

INDEX_NAME                     TABLE_NAME                     MON USE

------------------------------ ------------------------------ --- ---

START_MONITORING    END_MONITORING

------------------- -------------------

INDEX_TEST_PK                  TEST                           NO  YES

05/28/2010 11:20:10 05/28/2010 11:36:32

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22111412/viewspace-663903/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22111412/viewspace-663903/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值