返回顶部
首页 > 资讯 > 数据库 >oracle索引监控-----未使用的索引
  • 922
分享到

oracle索引监控-----未使用的索引

2024-04-02 19:04:59 922人浏览 八月长安
摘要

oracle索引监控-----未使用的索引 oracle索引是用来优化DML处理速度,但是索引是会占用表空间,有时会占用比被索引表占用还要多的表空间。所以,索引监控未使用索引就显得很重

oracle索引监控-----未使用的索引


oracle索引是用来优化DML处理速度,但是索引是会占用表空间,有时会占用比被索引表占用还要多的表空间。所以,索引监控未使用索引就显得很重要。

    

打开某个索引监控:

alter index owner.index_name monitoring usage;

    

关闭某个索引监控:

alter index owner.index_name nomonitoring usage;

    

在v$object_usage视图中包含有索引监控的使用信息。下面v$object_usage在oracle中的ddl语句:

create or replace view sys.v$object_usage

(index_name, table_name, monitoring, used, start_monitoring, end_monitoring)

as

select io.name, t.name,

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

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

       ou.start_monitoring,

       ou.end_monitoring

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

where io.owner# = userenv('SCHEMaiD')-----当前用户的索引

 and i.obj# = ou.obj#

 and io.obj# = ou.obj#

 and t.obj# = i.bo#;

      


这个试图只能查当前登录数据库的用户所创建的索引。

所以我们可以依葫芦画瓢,自己写sql语句。不过你必须要有相应的权限才行,具体权限自己加就行了。

只要是这几个表的查询权限(sys.obj$, sys.obj$, sys.ind$, sys.object_usage)。

sql略去。。。



alter index INDEX_USER monitoring usage;

select table_name,index_name,used from v$object_usage; 



alter index pk_emp nomonitoring usage;




select * from v$object_usage;

只是当前用户下有效,只能看到当前用户下的监视索引。




SQL> COL INDEX_NAME FOR A20       

SQL> COL TABLE_NAME FOR A10

SQL> COL MONITORING FOR A10

SQL> COL USED FOR A10

SQL> COL START_MONITORING FOR A20

SQL> COL END_MONITORING FOR A20

SQL> SELECT * FROM V$OBJECT_USAGE;



select z.name||'.'||io.name, t.name,

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

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

       ou.start_monitoring,

       ou.end_monitoring

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

Where  i.obj# = ou.obj#

and io.obj# = ou.obj#  and io.owner#=z.user#

and t.obj# = i.bo#  

Order By 4 Desc,2 Desc; 



CREATE OR REPLACE VIEW SYS.V$ALL_OBJECT_USAGE

(

OWNER,

INDEX_NAME,

TABLE_NAME,

MONITORING,

USED,

START_MONITORING,

END_MONITORING

)

AS

select u.name, io.name, t.name,

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

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

ou.start_monitoring,

ou.end_monitoring

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

where i.obj# = ou.obj#

and io.obj# = ou.obj#

and t.obj# = i.bo#

and io.owner# = u.user#;



COMMENT ON TABLE SYS.V$ALL_OBJECT_USAGE IS 'Record of all index usage';

GRANT SELECT ON SYS.V$ALL_OBJECT_USAGE TO "PUBLIC";

CREATE PUBLIC SYNONYM V$ALL_OBJECT_USAGE FOR SYS.V$ALL_OBJECT_USAGE;


V$OBJECT_USAGE

You can use this view to monitor index usage. The view displaysstatistics about index usage gathered from the database. Allindexes that have been used at least once can be monitored anddisplayed in this view.



注意:

 

1、$object_usage只包括当前用户所拥有索引的使用记录,即索引的创建者或者是索引的拥有者(owner),已这个用户登录后,看到的是此用户下拥有的索引在整个数据库的使用情况。如果使用了该索引,视图V$OBJECT_USAGE的字段USED会标成YES。否则是NO。当然首先是这些索引被启用使用监视。SQL>alter index index_test_pk monitoring usage;

 

2、如果需要查出所有用户所拥有索引的使用记录,使用下面的sql,这个sql来自DBA日记:

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

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

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

start_monitoring,ou.end_monitoring end_monitoring

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

ou where i.obj# = ou.obj# and io.obj# = ou.obj# and t.obj# =i.bo#

and u.user# = io.owner#;

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


您可能感兴趣的文档:

--结束END--

本文标题: oracle索引监控-----未使用的索引

本文链接: https://lsjlt.com/news/45137.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • oracle索引监控-----未使用的索引
    oracle索引监控-----未使用的索引 oracle索引是用来优化DML处理速度,但是索引是会占用表空间,有时会占用比被索引表占用还要多的表空间。所以,索引监控未使用索引就显得很重...
    99+
    2024-04-02
  • 怎么使用oracle索引监控
    这篇文章主要介绍“怎么使用oracle索引监控”,在日常操作中,相信很多人在怎么使用oracle索引监控问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用oracle索引...
    99+
    2024-04-02
  • oracle使用索引和不使用索引的区别
    小编给大家分享一下oracle使用索引和不使用索引的区别,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!首先准备一张百万条数据的表,这样分析数据差距更形象!下面用分页表数据对表进行分析,根据EM...
    99+
    2024-04-02
  • oracle索引的使用
    这篇文章主要讲解了“oracle索引的使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“oracle索引的使用”吧!----索引反键索引t1  &...
    99+
    2024-04-02
  • mysql中怎么监控索引使用率
    这篇文章将为大家详细讲解有关mysql中怎么监控索引使用率,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。索引使用率监控简析 show status...
    99+
    2024-04-02
  • Mysql索引如何使用监控脚本
    这篇文章将为大家详细讲解有关Mysql索引如何使用监控脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 开启变量:默认是关闭的,它在内存中...
    99+
    2024-04-02
  • MySQL查询冗余索引和未使用过的索引操作
    MySQL5.7及以上版本提供直接查询冗余索引、重复索引和未使用过索引的视图,直接查询即可。 查询冗余索引、重复索引 select * sys.from schema_...
    99+
    2024-04-02
  • mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
    目录聚集索引(Clustered Index)辅助索引(Secondary Index)覆盖索引(Covering index)联合索引《MySQL技术内幕 InnoDB存储引擎》学...
    99+
    2024-04-02
  • oracle索引怎么使用
    Oracle索引的使用方法如下:1. 创建索引:可以在表创建时定义索引,也可以在表创建后使用`CREATE INDEX`语句创建索引...
    99+
    2023-08-28
    oracle
  • MySQL查看哪些索引未使用
    SELECT OBJECT_SCHEMA, OBJECT_NAME, INDEX_NAME FROM performance_schema.table_io_waits_summary_by_ind...
    99+
    2024-04-02
  • oracle中使用索引与不使用索引的性能对比分析
    oracle中使用索引与不使用索引的性能对比分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言Oracle存储索引的数据结构是B*树。...
    99+
    2024-04-02
  • Oracle中的索引
    索引是一种能够对数据记录进行物理排序,或逻辑排序的机制,对基于索引列的查询来说,其查询效率得到极大的提升。 索引是一个单独的、物理的数据结构,在这个数据结构中包括表中的一列或若干列的...
    99+
    2024-04-02
  • Percona 5.5如何定位未使用的索引
    这篇文章主要为大家展示了“Percona 5.5如何定位未使用的索引”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Percona 5.5如何定位未使用的索引”这...
    99+
    2024-04-02
  • Oracle中复合索引与空值的索引怎么用
    这篇文章给大家分享的是有关Oracle中复合索引与空值的索引怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在QQ群里讨论一个SQL优化的问题,语句大致如下:selec...
    99+
    2024-04-02
  • MySQL索引如何创建和使用索引
    创建MySQL索引可以通过以下两种方式: 使用CREATE INDEX语句创建索引: CREATE INDEX index_na...
    99+
    2024-03-06
    MySQL
  • MySql 索引使用
    田老师,乐学医考的试题统计,做题记录有50w条,统计要20多分钟经过优化sql和建立索引,响应只需0.1秒SHOW INDEX FROM `exam_question_record`;ALTER TABLE...
    99+
    2024-04-02
  • mysql使用索引
    mysql使用索引?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!在排序操作中如果能使用到索引来排序,那么可以极大的提高排序...
    99+
    2024-04-02
  • Mysql索引的使用-组合索引+跳跃条件
    关于MYSQL组合索引的使用,官方对下面的例子的说法是可以使用索引:KEY(key_part1,key_part2,key_part3)select .... from table wher...
    99+
    2024-04-02
  • Oracle如何使用强制索引
    小编给大家分享一下Oracle如何使用强制索引,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Oracle使用强制索引在一些场景下...
    99+
    2024-04-02
  • oracle索引怎么正确使用
    正确使用Oracle索引的基本原则如下: 选择适当的列进行索引:选择经常用于查询和连接的列进行索引,特别是那些具有高选择性和频繁...
    99+
    2024-04-09
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作