暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

在Oracle数据库中,什么是索引组织表?

DB宝 2018-02-05
2972


Q
题目

 

Oracle数据库中,什么是索引组织表?




     

A
答案


索引组织表简称索引表(Index-Organized TableIOT),是把索引和一般数据列全部存储在相同位置上的表结构,是一个存储在索引结构中的表。它的特点是存储慢,读取快。索引组织表(IOT)不仅可以存储数据,还可以存储为表建立的索引。索引组织表的数据是根据主键排序后的顺序进行排列的,这样就提高了访问的速度,但是,这是由牺牲插入和更新性能为代价的(每次写入和更新后都要重新进行排序)。索引组织表的数据存储在与其关联的索引中。索引中存储的是行的实际数据,而不是ROWID,它是基于主键访问数据的。在索引组织表中,索引就是数据,数据就是索引。

CREATE TABLE命令与ORGANIZATION INDEX子句一起用于创建索引组织表,如下例所示:

 CREATE TABLE IND_ORG_TAB_LHR(

       VENCODE NUMBER(4) PRIMARY KEY,

       VENNAME VARCHAR2(20)

     )

     ORGANIZATION INDEX;

通过如下的SQL可以得到所有的IOT表:

SELECT * FROM DBA_TABLES D WHERE D.IOT_TYPE='IOT';

辅助索引(Secondary Indexes)也叫二级索引,是一个建立在索引组织表上的索引。在某种意义上,它是一个索引的索引。辅助索引是一个独立的模式对象,并与索引组织表分开存储。索引表上的辅助索引能够非常有效地访问索引表,这种索引既不是使用主键列也不是使用主键的某个前缀。Oracle构造这种索引使用的是逻辑的行标识符(Logical Rowids),这种ROWIDS是基于表的主键(而不是基于行的物理地址)。这种逻辑ROWIDS包括了一个物理猜想(Physical Guess),它也是一种物理标识符(物理指针),它唯一标识行的块地址,Oracle能使用这些猜想直接对索引表的叶块进行探测,从而避免主键搜索。

通过如下的SQL可以得到所有的辅助索引:

SELECT * FROM DBA_INDEXES D WHERE D.INDEX_TYPE='IOT - TOP';

对于IOT需要注意以下两点内容:

当创建IOT时,必须要设定主键,否则报错。

索引组织表实际上将所有数据都放入了索引中。

索引组织表可应用在以下情况:

联机事务处理(OLTP

Internet(例如:搜索引擎和门户网络)

电子商务(例如:电子商店和购物目录)

数据仓库

分析应用

经常通过主键访问的表。

加强数据的共同定位,要数据按特定顺序物理存储。

经常用BETWEENAND…或按照主键或唯一键进行查询。

数据物理上分类查询。如一张订单表,按日期装载数据,想查单个客户不同时期的订货和统计情况。

索引表和常规表不同之处下表所示:


常规表(Heap-Organized Table

索引表(Index-Organized Table

简介

ROWID唯一标识一行。主键可指定也可不指定(因为已经有ROWID了)

由主键来唯一标识一行,所以,主键必须指定

ROWID

使用物理ROWID,允许使用它创建二级索引

使用逻辑ROWID,允许使用它创建二级索引

访问数据

访问基于物理ROWID(使用物理地址)

访问基于逻辑ROWID(使用主键)

扫描方式

使用顺序扫描,返回所有行

使用全索引扫描,返回所有行,并按主键顺序排列

是否可以被存储在簇中

能被存储在一个簇中

不能被存储在一个簇中

能否含有LONGLOB

一列中能够含有数据类型为LONGLOB的数据

能含有LOB数据类型,但不能有LONG数据类型

是否支持分区

支持分区

不支持分区

是否允许包含虚拟列

可以包含虚拟列

不能包含虚拟列





DB笔试面试历史连接

http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

About Me:小麦苗

 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

 版权所有,欢迎分享本文,转载请保留出处

 QQ:646634621  QQ群:618766405

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。


最后修改时间:2020-01-10 20:51:50
文章转载自DB宝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论