oracle index contention,Index Contention等待
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等待相关推荐
- PostgreSQL Oracle 兼容性之 - INDEX SKIP SCAN (递归查询变态优化) 非驱动列索引扫描优化...
标签 PostgreSQL , Oracle , index skip scan , 非驱动列条件 , 递归查询 , 子树 背景 对于输入条件在复合索引中为非驱动列的,如何高效的利用索引扫描? 在Or ...
- oracle中alter index,oracle alter index rebuild online和alter index rebuild的區別
本文用10046事件來解析alter index rebuild與alter index rebuild online的區別 alter index rebuild online實質上是掃描表而不是掃 ...
- Oracle 常见的33个等待事件
Oracle 常见的33个等待事件 一. 等待事件的相关知识: 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件. 1). 空闲等待事件指ORACLE正 ...
- mysql ignore index,mysql强制索引FORCE INDEX/IGNORE INDEX忽略索引
FORCE INDEX 通常用来对查询强制使用一个或者多个索引. MySQL 通常会根据统计信息选择正确的索引,但是当查询优化器选择了错误的索引或者根本没有使用索引的时候,这个提示将非常有用. IGN ...
- :/index.php,http://localhost/my/INDEX.PHP/INDEX/INDEX无法正常运行:解决时找不到Options FollowSymLinks谢谢...
源自:2-3 路由类 http://localhost/my/INDEX.PHP/INDEX/INDEX无法正常运行:解决时找不到Options FollowSymLinks谢谢 打不到: Optio ...
- url(r'^index/$',views.index)的含义解释
已知: urls.py中的代码是: from django.contrib import admin from django.urls import path from django import u ...
- php_self include,PHP_SELF返回/index.php/index.php
为什么$_SERVER ['PHP_SELF']会返回/index.php/index.php ?? 请求 http://example.com 产量 /index.php/index.php 的in ...
- Python中[index for index, value in enumerate(a) if value > 3]
并不是index for index,这段代码应该这么看.(大括号内视为一个整体) [{index} for {index, value} in {enumerate(x)} if {value == ...
- html中index函数,INDEX函数.doc
INDEX函数 INDEX函数(有数组和引用两种用法.) 贡献者:HYPERLINK "/space-uid-1450717.html"843211 日期:2008-07-22 阅 ...
- TP6 控制器不存在:app\index\controller\Index
今天把网站部署到服务器碰到一个大坑,代码本地运行没有问题,但是放到服务器就一直报错 控制器不存在:app\index\controller\Index 然后各种找原因,百度了说是Linux对大小写要求 ...
最新文章
- 马斯克躺枪得州最严堕胎法案,因拒绝表态遭炮轰!“不站女权就抵制特斯拉”...
- iscsi-server端配置,以及clients连接。
- iTween基础之功能简介
- gtk/Glade编程 编译命令不成功 解决方法
- 如何在 Asp.Net Core 中 管理敏感数据
- 【PATL1-46】整除光棍(模拟除法)---水题
- c语言 美元符号,汇编语言 美元符号
- oracle cube,oracle rollup和cube分析
- 企业邮箱哪个好,邮箱品牌介绍—TOM邮箱
- 浅谈fiddler抓包工具中自动断点——Before Requests与After Responses断点功能
- 关于数据结构中的叶节点和二度节点的关系(通俗的理解)。
- 28 篇论文、6 大主题带你一览 CVPR 2020 研究趋势
- c语言中v作用是什么意思,C语言里,\v是什么意思?
- 将示波器数据传入电脑用matlab作FFT
- 计算机组成原理与结构
- 图像特效及滤镜算法汇总
- 音频卡是计算机硬件吗,绝对干货:关于声卡你需要知道的几点知识
- 个人独资企业缴纳什么税
- 2019重大信息安全事件_2019上半年信息安全工程师下午案例分析真题与答案解析...
- C语言基础知识——判断闰年