索引组织表(Index-Organized Table)是按B-树的结构来组织和存储数据的。与标准表中的数据时无序存放的不同,索引表中数据按主键值有序存储。

叶子节点中存放的是表的主键值与所有非主键值,而不是B-树索引值与ROWID。由于整条记录都保存在索引表的叶子节点中,因此索引表不需要使用物理ROWID来确定记录的位置。

只要知道主键的值,就可以找到相应记录的完整内容。Oracle也会为每个主键创建一个逻辑上的ROWID,其他的索引将使用逻辑ROWID来映射索引表中的记录。

1.索引表与标准表的比较

(1)索引表中的ROWID列存放的是【逻辑】物理地址。而标准表的ROWID伪列中存储的则是真实的物理地址,这是两者之间最本质的区别。另外其他几个方面的差异都是因为有这个差异存在而存在。或者说,它是索引表优势的根源。

(2)索引表的主键约束是必须定义的,而标准表主键约束是可选的。

(3)索引表通过全索引扫描按一定排序返回所有记录,而标准表是通过顺序全表扫描按一定排序返回所有记录

(4)索引表不能是聚簇表,标准表可以是聚簇表。

(5)索引表不能包含虚拟列

(6)索引表只需要维护索引表一个存储结构,标准表需要维护表和索引两种

2.索引表的优点

(1)可以基于主键的快速查询及范围查询,因为数据时按主键顺序组织的

(2)表与索引没有分离,维护容易

(3)需要较少的存储空间,可以避免主键重复。

3.索引表的溢出存储

普通B树索引条目一般比较小,因为在每个索引条目中仅保存索引列的值与ROWID的值。但是,因为索引表中的每个索引条目都包有整条地记录,所以,索引表中的索引条目就可能会很大。

为此,用户若在索引表中查询数据,其查询的只是其中一部分字段内容的话,索引表的效果就体现不出来。相反,若表中的字段比较多的话,则效果会适得其反。为此,在Oracle数据库中,

采用了溢出存储功能来应对索引表的这个缺陷。

如在一张员工基本信息表中,他有员工姓名、员工编号、员工出身年月、身份证号码、住址、户口、民族等信息,长达几十个字段。但是,在平时的时候,

我们基本上只需要查询员工的姓名、编号、身份证号码即可。而不需要其他的信息。 此时,当员工比较多的时候,就需要把这张表转换成索引表,然后采用溢出管理功能,来提高员工信息常用字段的查询速度。

把用户经常需要用到的员工姓名、编号、身份证号码等字段保存在叶子节点上。而把其他不常用的字段采取“溢出存储”策略。

创建索引表

创建一个索引表admin_doindex,保存在users表空间内,溢出百分比为20? 溢出部分保存在TBS1中

SQL> create table admin_docindex(
2 token char(20),
3 doc_id number,
4 token_frequency number,
5 token_offsets varchar2(2000),
6 constraint pk_admin_docindex primary key(token,doc_id))
7 organization index
8 tablespace users
9 pctthreshold 20 overflow tablespace TAS2; 表已创建。organization index:创建索引
pctthreshold 20:指定保留在索引段的索引条目中的记录的百分比
overflow tablespace TAS2:指定溢出的数据段的存储表空间

including :该字段保存在索引条目中
维护索引表
 1.修改admin_docindex的参数设置
SQL> alter table admin_docindex pctthreshold 15 including doc_id;

表已更改。

  




Oracle索引表的更多相关文章

  1. Oracle索引梳理系列(五)- Oracle索引种类之表簇索引(cluster index)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  2. 5.oracle建表的时候同时创建主键,外键,注释,约束,索引

    5.oracle建表的时候同时创建主键,外键,注释,约束,索引 1 --主键 )); ) ,constraint aba_pr primary key(id,name1)); --外键 )); --复 ...

  3. [oracle]索引与索引表管理

    (一)索引的概念 索引是一种与表或簇相关的数据库对象,能够为数据的查询提供快捷的存取路径,减少磁盘I/O,提高检索效率. 索引由索引值及记录相应物理地址的ROWID两个部分构成,并按照索引值有序排列, ...

  4. 简单了解,使用oracle中的索引,表分区

    索引的分类 如下: 物理分类 逻辑分类 分区或非分区索引 单列或组合索引 B树索引(标准索引) 唯一或非唯一索引 正常或反向键索引 基于函数索引 位图索引   B树索引 b树索引通常也称为标准索引,索 ...

  5. 转 关于oracle 分区表 表空间以及索引的总结

    关于oracle的表空间,分区表,以及索引的总结关键字: oracle, 表空间, 分区表, 索引 上周第一次做数据库测试碰到了很多问题特此总结: 表空间: Oracle的UNDOTBS01.DBF文 ...

  6. oracle创建表并加索引

    一个语句创建Oracle所有表的序列 -- 动态创建序列 2 declare 3 cursor c_job is 4 select TABLE_NAME from user_tables; 5 6 c ...

  7. oracle move表空间(分区表,索引)

    1.修改分区表分区表空间 SELECT 'ALTER TABLE ' || table_owner || '.' || TABLE_NAME || ' MOVE PARTITION ' || PART ...

  8. oracle索引监控

    目的:监控oracle索引的有效性,看索引有没有被使用.然后根据监控结果删除或者调整索引. 步骤: 1.监控指定索引 命令: alter index  索引名 monitoring usage;  如 ...

  9. Oracle索引重建

    一.前言 Oracle建议对于索引深度超过4级以及已删除的索引条目至少占有现有索引条目总数的20% 这2种情形下需要重建索引.有人持不同观点,就是强烈建议不要定期重建索引.索引重建是一个争论不休被不断 ...

随机推荐

  1. UVa 12563 劲歌金曲 刘汝佳第二版例题9-5;

    Problem J Jin Ge Jin Qu [h]ao (If you smiled when you see the title, this problem is for you ^_^) Fo ...

  2. sessionstorage:本地临时存储

    HTML5 web存储有两个重要对象: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储(关闭窗口,存储的数据清空) 一般涉 ...

  3. metadata简介

    元资料(Metadata),又称元数据.诠释资料.中继资料后设资料,为描述资料的资料(data about data),主要是描述资料属性(property)的资讯,用来支持如指示储存位置.历史资料. ...

  4. iOS View生成--->清晰的图片

    核心代码 view生成图片方法 UIGraphicsBeginImageContext(view.bounds.size); [view.layer renderInContext:UIGraphic ...

  5. python学习【第九篇】python面向对象编程

    一.面向对象了解 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. Pyth ...

  6. T-SQL 合并多行数据显示到一行

    思路: 自连接,使用For XML Path('')和STUFF函数 SELECT * FROM STUDENT Name                      Team------------- ...

  7. 阿里云 如何减少备份使用量? mysql数据库的完整备份、差异备份、增量备份

    RDS for MySQL备份.SQL审计容量相关问题_MYSQL使用_技术运维问题_云数据库 RDS 版-阿里云 https://help.aliyun.com/knowledge_detail/4 ...

  8. Python3.6全栈开发实例[022]

    22.完成彩票36选7的功能. 从36个数中随机的产生7个数. 最终获取到7个不重复的数据作为最终的开奖结果.随机数: from random import randintrandint(0, 20) ...

  9. Java语言实现简单FTP软件------>FTP协议分析(一)

    FTP(File Transfer Protocol)就是文件传输协议.通过FTP客户端从远程FTP服务器上拷贝文件到本地计算机称为下载,将本地计算机上的文件复制到远程FTP服务器上称为上传,上传和下 ...

  10. Mac下最好用的文本编辑器

    友情提醒:图多杀猫. 曾经在Windows下一直用gVim.能够用键盘控制一切,操作起来是又快又爽,还支持一大堆插件.想怎么玩就怎么玩.后来转Mac后,也沿袭着之前的习惯.一直在用终端的Vim.偶尔会 ...