oracle索引的监控

2023-10-27

author:skate
time :2009/08/21


 

最近的研究发现 Oracle 数据库所使用的索引从来没有达到过可用索引数的1/4,

 

或者其用法与其开始设计的意图不相同。未用的索引浪费空间,而且还会降低 DML

 

的速度,尤其是 UPDATE 和 INSERT 语句;控数据库索引的使用,释放那些未被使用

 

的索引,从而节省维护索引的开销,优化sql性能

 


在 Oracle9i 之前,监控索引使用的唯一方法是执行他们的程序库缓中的所有SQL,

 

然后手工记下所有被使用的索引。

 

 

oracle9i中如何确定索引的使用情况


 在oracle9i中,情况会简单的多,因为有一个新的字典视图V$SQL_PLAN存储了实际计划,

 

  这些计划用于执行共享SQL区中得语句。V$SQL_PLAN视图很类似与计划表,但V$SQL_PLAN
 
  使用ADDRESS和HASH_VALUE列 来识别语句, 而计划表使用用户提供得STATEMENT_ID来识
 
  别语句。下面的SQL显示了在一个oracle9i数据库中,由出现在共享SQL区中语句使用的所
 
  有索引


 select object_owner, object_name, options, count(*)
  from  v$sql_plan
   where operation='INDEX'
  and  object_owner!='SYS'
  group by object_owner, object_name, operation, options
  order by count(*) desc;

  
  所有基于共享SQL区中的信息来识别索引使用情况的方法, 都可能会收集到不完整的信息。共享SQL区是
   
    一个动态结构,除非能对它进行足够频繁的采样, 否则在有关索引使用的情况的信息被收集之前,SQL语
   
    句可能就已经(因为老化)被移出缓存了。

 


    Oracle9i提供一个简单的方法来打开和关闭索引使用跟踪,那就是MONITORING USAGE 子句:

 

  alter index cust_name_idx monitoring usage;
  alter index cust_name_idx nomonitoring usage;

 

  这个命令使用V$OBJECT_USAGE 视图和 USAGE 字段来判断索引是否被访问过。你可能期望 USAGE 字段是一个数字值,

 

    这样你就可以知道索引被使用的次数,但不幸的是,它的取值只为YES 或NO。但不管怎样,如果你接手一个以前开发
   
    的数据库,而且老数据库在没有考虑到 SQL 访问表的情况下创建了索引,那么这个工具对你是很有用的。INDEX MONITORING
   
    特性的开销非常小,而对定位和丢弃不需要的索引很有帮助

 

打开整个方案的索引监控的简单 SQL*Plus 脚本

    set pages 999
  set heading off
  spool run_mon.sql
  select
    'alter index '||
    index_name||
    ' monitoring usage;'
  from
    dba_indexes
  where
    owner = 'HPO5';
  spool off


 sql> @run_mon

 

oracle索引监控周期的选择,一般要覆盖对数据库所有的操作,避免漏掉

 

------end-----

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle索引的监控 的相关文章

随机推荐

  • SRM系统选择哪种部署方式?

    传统线下采购模式存在过程不透明 合规性差 沟通效率低且采购成本高等痛点 随着互联网技术不断发展 国内以阿里云 腾讯云 华为云为代表的丛多互联网企业都提供了上云基础服务 IAAS 各种SaaS管理软件也逐渐被中国企业接受 在此背景下 近几年不
  • Qt自定义控件的使用教程

    自定义的控件无非是继承自Qt的某个类自定义的一个类 常用的是继承自QWidget类 在Qt可视化编程中 可视化编程有两种方式 第一种 使用常规的方法 创建一个该类的对象 然后加入到布局管理器中 show一下就可以看到效果了 第二种 Qt D
  • mysql innodb flush_MySQL Config--参数innodb_flush_method

    延迟写 传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存 大多数磁盘I O都通过缓冲进行 当将数据写入文件时 内核通常先将该数据复制到其中一个缓冲区中 如果该缓冲区尚未写满 则并不将其排入输出队列 而是等待其写满或者当内核需要重用
  • 第七课,OpenGL之LookAt函数

    观察空间 通过给定摄像机位置 摄像机焦点 摄像机顶部分向量 可得到摄像机的固定位置 glm lookAt cameraPos cameraFocus cameraUp LookAt函数提供了这种计算 把这个LookAt矩阵作为观察矩阵可以很
  • 【C++】序

    1 数据类型 C 中有许多和C语言相似的数据类型 例如int char double 等等的数据类型 这些数据类型的使用和性质与C语言也大同小异 但在C 中也存在很多不同于C语言的数据类型 1 字符串类型 在C语言中 没有单独的字符串类型
  • 统计正数和负数的个数然后计算这些数的平均值)编写二个程序来读入不指定个数的整数,然后决定已经读取的整数中有多少个正数和多少个负数并计算这些输入值(不统计0)的总和,最终得出它们的平均值。这个程序以输入

    positives 0 negatives 0 sum 0 while True num int input Enter a number if num 0 break elif num gt 0 positives 1 正数个数 else
  • Java程序员必须要了解的七个开源协议介绍

    1 Mozilla Public License MPL License 允许免费重发布 免费修改 但要求修改后的代码版权归软件的倡议者 这种授权维护了商业软件的利益 它要求基于这种软件得修改无偿贡献 版权给该软件 这样 围绕该软件得所有代
  • c++ map 结构体作为key关键词

    c map 结构体作为key关键词 结构体的定义 这里的结构体是三个值 int x int y int label 当三个值作为 值时 你需要重新定义它的对比操作operator 这样才能对map进行查找操作 数据结构声明 并且对key的查
  • 在做课设时,用到的一个创建作业功能

    再做一个图书借阅系统的课设时 因为需要在数据库里实时更新某个人当前借阅图书的逾期天数 需要每次打开电脑都获取当前日期 再减去应还书日期 当时一直想不到一个很好的解决方法 然后在网上查了些资料 说是要用到sql server 创建作业的办法
  • Python实现自动化办公

    人工智能 AI 是当今世界最为热门的话题之一 而Python是从事AI领域最为流行的编程语言 在本文中 我将介绍如何使用Python实现自动化办公和处理工资表等知识教程 帮助您从零入门人工智能Python 一 制作Excel可视化报表 在传
  • 使用Jmeter进行性能测试

    文章目录 一 性能测试 性能测试介绍 性能指标QPS 每秒查询率 性能指标TPS 每秒处理的事务数目 QPS和TPS的不同点 二 Jmeter性能测试案例 三 Jmeter性能测试结果分析 1 如何得到可靠的测试报告 2 运行实际负载测试时
  • php苹果内购验证,苹果内购凭据验证工具(苹果支付,苹果内购,凭据解析)

    use sn01615 iap ios Verify include vendor autoload php cc new Verify receipt 凭据 cc gt endpoint true 可选 切换到沙盒环境 cc gt set
  • 生草shader的几种方法总结

    草地shader一直是shader效果的热门主题 实现草地效果 结合了集合绘制 顶点动画 光照很多shader编程的技巧 这里总结一下我在网上查到博客的几种实现方案 我居然拖了一年还没有写完 woc 反正也没有人看 先发一个 第一位是che
  • 怎么采集dedecms自定义内容模型

    有时我们需要用到dedecms提供的自定义内容模型功能去添加自定义内容模型来满足需求 那么dedecms自定义内同模型怎么添加采集规则呢 打开 dede templets co add step0 htm 找到如下代码 19行左右
  • 软考高级之系统架构师之企业应用集成EAI

    概述 在企业信息化建设的过程中 由于缺乏统一规划和总体布局 往往形成多个信息孤岛 信息孤岛使数据的一致性无法得到保证 信息无法共享和反馈 需要重复多次的采集和输入 信息孤岛是企业信息化一个重要的负面因素 其主要原因既有技术因素也有管理因素
  • 云服务器创建win10虚拟机吗,云服务器创建win10虚拟机

    云服务器创建win10虚拟机 内容精选 换一换 弹性云服务器 Elastic Cloud Server 以下简称ECS 是由CPU 内存 镜像 云硬盘组成的一种可随时获取 弹性可扩展的计算服务器 同时它结合VPC 虚拟防火墙 数据多副本保存
  • 深度优先搜索(DFS)

    算法入门 郭志伟 SYSU raphealguo at qq com 2012 05 12 1 前言 深度优先搜索 缩写DFS 有点类似广度优先搜索 也是对一个连通图进行遍历的算法 它的思想是从一个顶点V0开始 沿着一条路一直走到底 如果发
  • 记录一个接口. 接口同时传输参数和很多流的情况

    和一个保险系统的对接 文本类型的参数咱不多说 因为接口数据源是保险订单和保险理赔 所以需要传输一些图片和视频信息 比如说合同发票 定损图片和视频等等 这种需求的处理比较合适的方案是约定一个FTP SFTP服务器 然后参数中还传递文件的路径和
  • php的debug显示不全,【已解决】VSCode调试PHP时无法显示长字符串变量完整值

    折腾 未解决 php中用正则过滤html中code中多余span标签 期间 用VSCode去调试PHP期间 发现个问题 对于变量的值 如果很长的话 右键拷贝出来的值 只有一部分 不是完整的字符串 鼠标移动上去显示出来的效果 内容不完整 右键
  • oracle索引的监控

    author skatetime 2009 08 21 最近的研究发现 Oracle 数据库所使用的索引从来没有达到过可用索引数的1 4 或者其用法与其开始设计的意图不相同 未用的索引浪费空间 而且还会降低 DML 的速度 尤其是 UPDA