[oracle]索引与索引表管理
(一)索引的概念
索引是一种与表或簇相关的数据库对象,能够为数据的查询提供快捷的存取路径,减少磁盘I/O,提高检索效率。
索引由索引值及记录相应物理地址的ROWID两个部分构成,并按照索引值有序排列,ROWID可以快速定位到数据库表符合条件的记录。可以这样理解,将索引看作是一本书的目录,索引值即为目录的标题,ROWID即为目录的页码。
(二)索引的更新策略
随着标准数据的插入、删除、修改,索引表中的信息会自动更新,具体过程:
l 向表中插入数据时,系统会在索引的叶子节点插入与表对应的索引条目;
l 删除表中的数据时,系统自动删除相关的索引条目,但是空间并没有回收,也不会分配给新的索引条目使用,只有将整个叶子节点删除,空间才会被回收;
l 修改索引表中的数据时,系统会删除索引叶子节点的条目,然后重新分配索引条目
从更新策略可知,索引并不是创建的越多越好。索引在提高查询效率的同时,会降低数据插入、删除、更新的效率。Oracle建议将索引与表分散在不同的表空间中,最好分散在不同的磁盘上,以提高效率。
(三)索引结构
数据库有2种索引结构:平衡树索引结构(B_Tree)和位图索引结构(Bitmap)。
(1) 平衡树索引结构
整个索引结构由根节点、分支节点、叶子节点三部分构成,其中分支节点可以有多层。根节点的信息指向下一层分支节点,最底层的分值节点指向叶子节点,叶子节点保存索引条目信息。索引条目信息由4部分构成:索引基于的列信息(Index entry header)、索引列的长度(key column length)、索引值(key column value)及索引对应的ROWID。B_Tree索引占用空间多,适合索引取值范围广(基数大)、重复率低的应用。
图.平衡树索引结构图
(2)位图索引结构
位图结构也是按平衡树组织的,但是在叶子节点每个索引值对应一个位图而不是一个ROWID,一个位图里面可以包含一个或多个ROWID,位元到ROWID的映射是通过索引中的映射函数实现的。位图索引适合于取值范围小,待索引数据重复率高的列。
图.位图索引结构
(四)创建索引
可以使用create index创建索引:
CREATE [UNIQUE][BITMAP] INDEX [schema.]index_name
ON [schema.]table_name(index_expr[ASC | DESC][,...])
[PCTFREE integer] [PCTUSED integer] [INITRANS integer]
[STORAGE(storage_clause)]
[LOGGING][NOLOGGING]
[ONLINE]
[TABLESPACE tablespace_name]
[NOCOMPRESS | [ COMPRESS integer] ]
[SORT|NOSORT]
[REVERSE]
[NOPARALLEL |[ PARALLEL integer]]
解释:
【未完待续。。。】
[oracle]索引与索引表管理的更多相关文章
- Oracle【二维表管理:约束】
1.简单的表创建和字段类型最简单的方式去创建表(没有添加主键之类的约束条件)[Oracle的字段类型]number:数值类型--整数类型:number(a) 总长度a--小数类型:number(a,b ...
- Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■ 详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...
- 简单了解,使用oracle中的索引,表分区
索引的分类 如下: 物理分类 逻辑分类 分区或非分区索引 单列或组合索引 B树索引(标准索引) 唯一或非唯一索引 正常或反向键索引 基于函数索引 位图索引 B树索引 b树索引通常也称为标准索引,索 ...
- Oracle数据库对象(表空间/同义词/序列/视图/索引)
数据库对象 Oracle数据库对象: 数据库对象是数据库的组成部分,常常用 CREATE 命令进行创建,可以使用 ALTER 命令修改,用 DROP 执行删除操作. 种类: (1)表空间:所有的数据对 ...
- Oracle组合索引与回表
回表 简单来说就是数据库根据索引找到了指定的记录所在行后,还需要根据rowid再次到数据块里取数据的操作. "回表"一般就是指执行计划里显示的"TABLE ACCESS ...
- Oracle索引梳理系列(五)- Oracle索引种类之表簇索引(cluster index)
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Oracle 索引创建、表分区
--EAF_WORKFLOWSTEP 表创建 CREATE TABLE EAF_WORKFLOWSTEP ( ) NOT NULL PRIMARY KEY USING INDEX TABLESPACE ...
- .Net程序员学用Oracle系列(6):表、字段、注释、约束、索引
<.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 ...
- oracle查询所有用户表的表名、主键名称、索引、外键等
1.查找表的所有索引(包括索引名,类型,构成列): select t.*,i.index_type from user_ind_columns t,user_indexes i where t.ind ...
随机推荐
- [转]Asp.Net大型项目实践(11)-基于MVC Action粒度的权限管理【续】【源码在这里】(在线demo,全部源码)
本文转自:http://www.cnblogs.com/legendxian/archive/2010/01/25/1655551.html 接上篇Asp.Net大型项目实践(10)-基于MVC Ac ...
- 调用WCF错误-There was no endpoint listening
问题描述: 今天在调用WCF服务时候出现了下面的错误. 原因: 调用服务的客户端ip设置成了固定ip.(至于固定ip为什么会导致这个错误,没能去研究) 解决方法: 将客户端ip设置成自动获取.
- WPF - MVVM 之TreeView
在项目中使用OnPropertyChanged方法,最简单的实例: private event PropertyChangedEventHandler PropertyChanged; protect ...
- [Linq To Sql]解决join时的Collation冲突
背景 现在两表 A:
- CSP学习之ASN.1编码(一)
一.定义: 是定义抽象数据类型的标准. 是用于描述数据的表示.编码.传输.解码的灵活记法. 它提供一套正式.无歧义和精确的规则,以描述独立于特定计算机硬件的对象结构. 标准的ASN.1编码规则有其基本 ...
- Java 枚举 获取前后元素,下一个元素
https://blog.csdn.net/jiangshanwe/article/details/79119219
- Android-自定义View实现ImageView播放gif
http://blog.csdn.net/guolin_blog/article/details/11100315 总体思路是这样的 PowerImageView类继承ImageView类 给Powe ...
- web应用开发周期
web应用开发周期 1. 前期准备 2. 编码 3. 上线 4. 数据分析 5. 持续交付 6. 遗留系统 7. 回顾与新架构 重构的一般性因素 1. 系统难以维护 2. 系统技术栈难以符合业务需求 ...
- link 和 import 导入外部样式的区别
差别一:link 属于 XHTML 标签,而 @import 完全是 CSS 提供的 一种方式.link标签除了可以加载 CSS 外,还可以做很多事情,比如定义 RSS ,定义 rel 链接属性等. ...
- LDAP入门与OpenLDAP使用配置
LDAP入门与OpenLDAP使用配置 1.LDAP简介 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务. ...