Oracle 反键索引/反向索引
反键索引又叫反向索引,不是用来加速数据访问的,而是为了均衡IO,解决热块而设计的
比如数据这样:
1000001 1000002 1000005 1000006
在普通索引中会出现在一个叶子上,如果部门数据需求极大,也就是热块,多个需求之间就会有请求竞争。
为了避开竞争 建反键索引 它会将数据逆转
1000001 2000001 5000001 6000001
这样索引键就不可能分布在一个叶子上.实现了IO分离,每个数据在索引中搜寻路径也就不一致了,解决了热点块竞争问题。
建立反键索引:
SQL> alter index i5 rebuild reverse;
Index altered.
查元数据:SQL> select dbms_metadata.get_ddl('INDEX','I5') from dual;
DBMS_METADATA.GET_DDL('INDEX','I5')
--------------------------------------------------------------------------------
CREATE INDEX "SCOTT"."I5" ON "SCOTT"."T1" (TRIM("ENAME"))
REVERSE
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATI
STICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAX
EXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROU
PS 1 BUFFER_POOL DEFAULT)
TABLESPACE "USERS"
反键索引转化为正常索引:
SQL> alter index i5 rebuild noreverse;
Index altered.
查元数据:SQL> select dbms_metadata.get_ddl('INDEX','I5') from dual;
DBMS_METADATA.GET_DDL('INDEX','I5')
--------------------------------------------------------------------------------
CREATE INDEX "SCOTT"."I5" ON "SCOTT"."T1" (TRIM("ENAME"))
PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINE
XTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUF
FER_POOL DEFAULT)
TABLESPACE "USERS"
已经没有REVERSE,说明已经转划为了正常的普通索引。
Oracle 反键索引/反向索引的更多相关文章
- Oracle索引梳理系列(三)- Oracle索引种类之反向索引
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Oracle 反向索引(反转建索引) 理解
一 反向索引 1.1 反向索引的定义 反向索引作为B-tree索引的一个分支,主要是在创建索引时,针对索引列的索引键值进行字节反转,进而实现分散存放到不同叶子节点块的目的. 1.2 反向索引针对的问题 ...
- oracle索引,索引的建立、修改、删除
索引,索引的建立.修改.删除 2007-10-05 13:29 来源: 作者: 网友评论 0 条 浏览次数 2986 索引索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和 ...
- Oracle的几种索引
Oracle 提供了多种不同类型的索引以供使用.简单地说, Oracle 中包括如下索引: 1. B* 树索引 这些是我所说的 “ 传统 “ 索引.到目前为止,这是 Oracle 和大多数其他数据库中 ...
- Reverse Key Indexes反向索引
Reverse Key Indexes反向索引A reverse key index is a type of B-tree index that physically reverses the by ...
- 【Oracle学习笔记】索引
1 简介 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引.在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息. ...
- sql(Oracle)优化之索引
原文:https://www.cnblogs.com/oraclestudy/articles/5779210.html 建立索引的目的是:l 提高对表的查询速度:l 对表有关列的取值进行检查. 注意 ...
- Oracle外键不加索引会引起死锁问题
转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...
- 深入学习Oracle分区表及分区索引
关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: • Range(范围)分区 • Has ...
随机推荐
- Windows10下安装Jupyter
打开cmd 升级pip3的版本: pip3 install --upgrade pip 安装Jupyter pip3 install jupyter
- 如何安装 mcrypt
#cd libmcrypt-2.5.8 #./configure #make #make install 说明:libmcript默认安装在/usr/local3.安装mhash #tar -zxvf ...
- c# 如何更改 WebBrowser所加载的 HTML元素(隐藏滚动条),并按照修改后的来呈现
如何更改 WebBrowser所加载的 HTML元素 方法1:在网页加载完毕后的事件里面添加代码,我这里只是修改网页不出现滚动条,因为滚动条我重写了. #region (private) 网页加载完成 ...
- dos编辑文件上传到unix系统多余^M删除方法
linux上的文件sz到window编辑后多出^M, 方法一: 1.grep -anR '^M' filename |wc -l2.crontab -e 或vim filename3.:set ff ...
- 20180711-Java分支结构 – if…else/switch
public class Test{ public static void main(String args[]){ int x = 10; if(x<20){ System.out .prin ...
- SQL element_at函数
库里有类似josn形式的字符串数据attr{"a":"123","b":"234"."c":&quo ...
- vue搭建项目之设置代理
前面将项目页面.axios.组件等都准备好了,现在就差设置代理了: 首先在config下新建两个文件,分别叫做dev.uri.js和prod.uri.js,代码为: module.exports = ...
- Sublime Text3安装配置
Sublime Text3的所有package都可在如下网站检索 https://packagecontrol.io/browse 以下是我的插件列表 CoolFormat 一款C\C++\C#\CS ...
- JavaScript 高级程序设计(第3版)第二章 (在html中使用js)
1.script元素的属性(6个):①async(异步脚本),只对外部脚本有效 ②defer(延迟脚本),只对外部脚本有效 ③charset,src(可跨域),type,language 2.尽可能使 ...
- Action 分离
原文地址:http://www.cnblogs.com/giggle/p/5380832.html?utm_source=tuicool&utm_medium=referral 本处摘要备注. ...