iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >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://www.lsjlt.com/news/45137.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用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
  • oracle中使用索引与不使用索引的性能对比分析
    oracle中使用索引与不使用索引的性能对比分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前言Oracle存储索引的数据结构是B*树。...
    99+
    2024-04-02
  • Percona 5.5如何定位未使用的索引
    这篇文章主要为大家展示了“Percona 5.5如何定位未使用的索引”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Percona 5.5如何定位未使用的索引”这...
    99+
    2024-04-02
  • MySQL索引如何创建和使用索引
    创建MySQL索引可以通过以下两种方式: 使用CREATE INDEX语句创建索引: CREATE INDEX index_na...
    99+
    2024-03-06
    MySQL
  • Oracle中复合索引与空值的索引怎么用
    这篇文章给大家分享的是有关Oracle中复合索引与空值的索引怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在QQ群里讨论一个SQL优化的问题,语句大致如下:selec...
    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索引总结
    目录一、简介二、索引原理三、索引使用(创建、修改、删除、查看)1.创建索引语法2.修改索引3.重建索引3.删除索引4.查看索引四、索引分类1. B树索引2. 位图索引3.单列索引和复...
    99+
    2024-04-02
  • Oracle 11g R2 索引
    索引是oracle提供的一个对象,提供了一种快速访问数据的途径,提高了数据库的检索性能。索引使数据库程序无需对整个表进行全表扫描,就可以在其中找到所需要的数据,就想书的目录,可以通过他快速查找所需信息,无需...
    99+
    2024-04-02
  • Oracle索引状态查询&索引重建
    --检查损坏索引 SELECT status, COUNT(*)   FROM dba_indexes  GROUP...
    99+
    2024-04-02
  • oracle怎么修改索引为唯一索引
    要将索引修改为唯一索引,可以使用Oracle的ALTER TABLE语句来完成。以下是修改索引为唯一索引的步骤:1. 查询当前的索引...
    99+
    2023-09-14
    oracle
  • 怎么在mysql中对于索引使用率进行监控
    怎么在mysql中对于索引使用率进行监控?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、查看当前索引使用情况我们可以通过下面...
    99+
    2024-04-02
  • 索引使用规则及索引失效情况
    索引使用规则 联合索引索引失效情况 联合索引 1.最左前缀法则 如果索引使用了多列(联合索引),要遵守最左前缀法则。最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列,如果...
    99+
    2023-09-05
    mysql
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作