好多初级DBA很喜欢用reuildonline重建索引,他们认为这样做不会影响业务。

曾经发生的几次故障,在业务用的时候,rebuild online索引,导致大部分业务无法使用,数据库hang.

其实rebulid 索引很简单

drop index index_name

Alter indexindex_name rebuild;

Alter indexindex_name rebuild online;

作为DBA,对生产系统执行任何操作时,仅仅懂这些还是远远不够的,需要明确如下几点

1、执行该命令会对业务有啥影响,是不是业务时间,如果是一定不要进行类此操作。因为在大对象中创建索引时不仅需要较大temp表空间,而且是DDL操作,基于表原有索引SQL语句的执行计划都会发生变化,导致大量的解析导致消耗大量的cpu资源。

2、如果删除或者索引失效后,会出现大量的全表扫描。这不仅对系统I/O产生压力,对CPU、内存方面压力也大。

3.要理解rebuild和rebuildonline 的区别。

alter index rebuild online实质上是扫描表而不是扫描现有的索引块来实现索引的重建.

alter index rebuild 只扫描现有的索引块来实现索引的重建。

rebuild index online在执行期间不会阻塞DML操作,但在开始和结束阶段,需要请求模式为4的TM锁。因此,如果在rebuild indexonline开始前或结束时,有其它长时间的事物在运行,很有可能就造成大量的锁等待。也就是说在执行前仍会产生阻塞,应该避免排他锁.如果在业务期间做,可能会导致 online执行很长时间,在 rebulid index online 的时候走的是 full table scan,这时候需要排序,消耗大量的temp空间,rebuild online需要2倍的索引空间。

而rebuild index在执行期间会阻塞DML操作, 但速度较快,rebulidindex 走的index ffs,而ffs搜索的顺序是根据leaf block的物理存储顺序相关,也需要排序。也会消耗大量的临时表空间。

总之不要在业务期间进行DDL(rebulid 及rebulid online index),或者使用DROP INDEX  creat index 来代替rebuild index。

oracle rebuild online,rebuild online 请慎用相关推荐

  1. oracle index alter,Oracle alter index rebuild 一系列问题

    在ITPUB  论坛上看到的一个帖子,很不错.根据论坛的帖子重做整理了一下.  原文链接如下: alter index rebuild online引发的血案 一. 官网说明 在MOS 上的一篇文章讲 ...

  2. 发个真正高效清理垃圾的脚本(请慎用,效果很强)

    发个真正高效清理垃圾的脚本(请慎用,效果很强) 请复制以下内容到文本文档中,并修改后缀名为*.BAT ************分割线******请复制以下内容******** @echo off co ...

  3. oracle中alter index,oracle alter index rebuild online和alter index rebuild的區別

    本文用10046事件來解析alter index rebuild與alter index rebuild online的區別 alter index rebuild online實質上是掃描表而不是掃 ...

  4. oracle rebuild online,ORACLE alter index rebuild online 操作产生的锁

    ORACLE通过锁和闩的方式实现了并发控制,v$lock 视图列出了数据库中当前拥有的锁以及未完成的锁请求.当发觉有session处于等待事件时 ,可以通过v$lock查询信息. v$lock中的常用 ...

  5. oracle java耗cpu_ORACLE高手请看过来,CPU使用率100% (100分)

    看不出什么问题 oms.nohup 好像正常 总之云里雾里 剪了最后一段青帮忙看看 用于 Windows NT 的 OEMCTL: 版本 9.2.0.1.0 正式版 版权所有 (c) 1998, 20 ...

  6. mysql rebuild index_MSSQL Rebuild(重建)索引

    前的项目是做数据库的归档,在每次archive后都需要对原数据库的索引进行rebuild,以减少索引碎片,于是乎就自己写了一段sql: DECLARE @tablename VARCHAR(50) D ...

  7. 药名上如有这10个字请慎用!用错了会对身体带来更大伤害

      来源:广州日报(guangzhoudaily).人民网.央视财经.惠州日报 1. 药物慎用   生病吃药,除疗效外,你是否关注"副作用"?买药时,药盒上有这10个字慎买.药名上 ...

  8. 小孩发烧请慎用抗病毒类药物!

    请父母们.医生们注意了,我最近发现在我的小孩感冒输液时验证出一个问题,那就是她对抗病毒类药物(如热毒宁)有很强的过敏反应,甚至导致高烧抽筋. 我的小孩今年2岁.1月21日傍晚患急性咽炎发烧至38度左右 ...

  9. Oracle项目管理系统之合同请款管理

    卷首语 合同模块包括自合同签订前的合同谈判.合同审核.律师咨询.设计联络会.合同签订,以及合同执行.变更.支付.奖励.索赔.验收.结算等全过程的管理与监控. 合同请款管理 项目请款主要是基于已签订合同 ...

最新文章

  1. 高并发编程-happens-before
  2. ORA-12516 TNS: 监听程序找不到符合协议堆栈要求的可用处理程序
  3. QML编程之旅 -- 事件处理
  4. div置于页面底部_网易内部PPT模板有点丑,如何花最少的时间提高页面颜值?
  5. php 单例模式 单态模式
  6. 苹果推送消息服务(转)
  7. Python selenium对js元素进行增删改查操作
  8. Android长度单位详解(dp、sp、px、in、pt、mm、dip)
  9. linux之LAMP架构搭建
  10. 后疫情时代,银行从数字化转型到智能化“迁徙”
  11. Python Pycharm 配置Tips01 - 配置Pycharm的Python版本
  12. Jmeter如何将上一个请求的结果作为下一个请求的参数——使用正则表达式提取器转载...
  13. 2021年中国互联网行业发展现状及未来发展趋势分析[图]
  14. java审批工作流,值得一读!
  15. 罗永浩以为×××短信给了马化腾一记暴击,实际……
  16. WIFI-WPA破解
  17. TOM带你玩充电 篇三:15款5号电池横评及选购建议——南孚金霸王小米宜家耐时品胜一个都逃不了...
  18. 进程的切换——switch_to函数
  19. 有会用正则表达式解这个吗?
  20. Go语言中的次方表示

热门文章

  1. 128 黙齎 李貴 曷若親征
  2. mysql 1213
  3. 电脑快捷方式删除文件后四种找回方法
  4. 【人工智能算法从图解入手】
  5. linux指令buster是什么,FGO三类战斗指令卡有什么用 合理利用手中指令卡
  6. 计算机二级虎贲跟未来教育那个好,考计算机二级的都看看,分享几款模拟软件...
  7. 如何使用Movavi Video Editor去除影片中的声音或音乐
  8. AE生成高清视频设置
  9. matlab怎么取消科学计数法_在MATLAB中更改数据科学计数法
  10. 一个毕业三年的程序猿对于提升自我的一些建议