l表被删除后的空间是可以被重用的, (pctused对表块有影响,块上删除后的空间可以重用。pctfree给表块未来的update留空间)

索引被删除只加了删除标记,不能被重用。(除非该叶子快的所有索引都被标记为删除,即100% free的index block才能被放到freelist里面重用。或者虽然不是全空的,但是后续插入的行与原来的行的索引值是同一个值或者同范围。)

(pctused对索引块没有影响,因为索引记录被删除后的空间不能重用)

(pctfree对于索引块实际不是给update留空间而是给insert留空间,索引update:是先删除(加删除标记)+insert插入(新的块)。 而索引总是有序的,insert某值可能位于已有的块中间(对于非右增长的))

过多的dml操作使得索引变得松散(rebuild)

l重建索引:

1,有可能会降低btree的level

2,松散的索引变得紧凑

lASSM(automatic segment space management)

段中的block的位图只有这几种: 0~25%, 25%~50%, 50%~75%,75%~100%。 没有单独标记100% free的位图。

index 块split时,要去search 75%~100%的块, 找到后, 然后判断是否full free block(只有100% free的空块才能被用来做索引的分裂)。

l索引分裂的时候(无论是50-50,还是90-10),split进程找临近空块,在找到临近的70%-100%的空块之后,却发现不能重用的原因有2个:????

1,可能这个块不是100%free的,而是70% ~ <100% free的, 也就是找到的这个block上面还有几行或者多行索引记录,所以不能被重用来做split

2,可能这个块上还有一些其它的active transaction,所以它重用不了。

而每次寻找空块然后failed ,oracle就会增加这个统计指标: failed probes on index block reclamation

l对某些库的index contention的时候伴随出现的buffer gets增加的问题原因解释:

---update * set * where (select * 。。。) ,有子查询的这种dml, 会受两方面的影响导致该类dml的buffer gets增加:

1,可能select子查询受一致性读的影响,读cr block产生更多的buffer gets

2,可能索引找空块, 随着索引碎片的增加,它找空块的次数也变多(找空块本身也是一个事务,有可能成功也有可能会失败回滚),从而产生更多的buffer gets。

---insert ** values (。。。) , 这种无子查询的dml , 会受这个因素影响导致dml 的buffer gets增加:

2,可能索引找空块, 随着索引碎片的增加,它找空块的次数也变多(找空块本身也是一个事务,有可能成功也有可能会失败回滚),从而产生更多的buffer gets。

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

oracle index contention,Index Contention等待相关推荐

  1. PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化...

    标签 PostgreSQL , Oracle , index skip scan , 非驱动列条件 , 递归查询 , 子树 背景 对于输入条件在复合索引中为非驱动列的,如何高效的利用索引扫描? 在Or ...

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

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

  3. Oracle 常见的33个等待事件

    Oracle 常见的33个等待事件 一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件. 1). 空闲等待事件指ORACLE正 ...

  4. mysql ignore index,mysql强制索引FORCE INDEX/IGNORE INDEX忽略索引

    FORCE INDEX 通常用来对查询强制使用一个或者多个索引. MySQL 通常会根据统计信息选择正确的索引,但是当查询优化器选择了错误的索引或者根本没有使用索引的时候,这个提示将非常有用. IGN ...

  5. :/index.php,http://localhost/my/INDEX.PHP/INDEX/INDEX无法正常运行:解决时找不到Options FollowSymLinks谢谢...

    源自:2-3 路由类 http://localhost/my/INDEX.PHP/INDEX/INDEX无法正常运行:解决时找不到Options FollowSymLinks谢谢 打不到: Optio ...

  6. url(r'^index/$',views.index)的含义解释

    已知: urls.py中的代码是: from django.contrib import admin from django.urls import path from django import u ...

  7. php_self include,PHP_SELF返回/index.php/index.php

    为什么$_SERVER ['PHP_SELF']会返回/index.php/index.php ?? 请求 http://example.com 产量 /index.php/index.php 的in ...

  8. Python中[index for index, value in enumerate(a) if value > 3]

    并不是index for index,这段代码应该这么看.(大括号内视为一个整体) [{index} for {index, value} in {enumerate(x)} if {value == ...

  9. html中index函数,INDEX函数.doc

    INDEX函数 INDEX函数(有数组和引用两种用法.) 贡献者:HYPERLINK "/space-uid-1450717.html"843211 日期:2008-07-22 阅 ...

  10. TP6 控制器不存在:app\index\controller\Index

    今天把网站部署到服务器碰到一个大坑,代码本地运行没有问题,但是放到服务器就一直报错 控制器不存在:app\index\controller\Index 然后各种找原因,百度了说是Linux对大小写要求 ...

最新文章

  1. 马斯克躺枪得州最严堕胎法案,因拒绝表态遭炮轰!“不站女权就抵制特斯拉”...
  2. iscsi-server端配置,以及clients连接。
  3. iTween基础之功能简介
  4. gtk/Glade编程 编译命令不成功 解决方法
  5. 如何在 Asp.Net Core 中 管理敏感数据
  6. 【PATL1-46】整除光棍(模拟除法)---水题
  7. c语言 美元符号,汇编语言 美元符号
  8. oracle cube,oracle rollup和cube分析
  9. 企业邮箱哪个好,邮箱品牌介绍—TOM邮箱
  10. 浅谈fiddler抓包工具中自动断点——Before Requests与After Responses断点功能
  11. 关于数据结构中的叶节点和二度节点的关系(通俗的理解)。
  12. 28 篇论文、6 大主题带你一览 CVPR 2020 研究趋势
  13. c语言中v作用是什么意思,C语言里,\v是什么意思?
  14. 将示波器数据传入电脑用matlab作FFT
  15. 计算机组成原理与结构
  16. 图像特效及滤镜算法汇总
  17. 音频卡是计算机硬件吗,绝对干货:关于声卡你需要知道的几点知识
  18. 个人独资企业缴纳什么税
  19. 2019重大信息安全事件_2019上半年信息安全工程师下午案例分析真题与答案解析...
  20. C语言基础知识——判断闰年

热门文章

  1. 浅析Python中深拷贝和浅拷贝
  2. 浅析网站SEO与网站建设密不可分的关系
  3. samba服务的搭建
  4. Android网络开发之Volley--Volley自定义Request
  5. .net webconfig 配置说明123
  6. git初始化及关联远程仓库命令
  7. linux ubuntu/deepin与Windows时间不同步解决办法(双系统)
  8. [Ubuntu软件]好用轻巧的录屏软件——Kazam
  9. scala中object和class关键字的区别
  10. Apollo读取某个集群的配置