`
xitonga
  • 浏览: 586089 次
文章分类
社区版块
存档分类
最新评论

索引组织表的应用

 
阅读更多
索引组织表
索引组织表(IOT)不仅可以存储数据,还可以存储为表建立的索引。索引组织表的数据是根据主键排序后的顺序进行排列的,这样就提高了访问的速度。但是这是由牺牲插入和更新性能为代价的(每次写入和更新后都要重新进行重新排序)。
索引组织表的创建格式如下:

createtableindexTable(

IDvarchar2(10),

NAMEvarchar2(20),

constraintpk_idprimarykey(ID)

)

organizationindex;

注意两点:

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

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

索引组织表属性

1、OVERFLOW子句(行溢出)

因为所有数据都放入索引,所以当表的数据量很大时,会降低索引组织表的查询性能。此时设置溢出段将主键和溢出数据分开来存储以提高效率。溢出段的设置有两种格式:

PCTTHRESHOLD n:制定一个数据块的百分比,当行数据占用大小超出时,该行的其他列数据放入溢出段

INCLUDING column_name:指定列之前的列都放入索引块,之后的列都放到溢出段

● 当行中某字段的数据量无法确定时使用PCTTHRESHOLD

● 若所有行均超出PCTTHRESHOLD规定大小,则考虑使用INCLUDING

createtablet88(

IDvarchar2(10),

NAMEvarchar2(20),

constraintpk_idprimarykey(ID)

)

organizationindex

PCTTHRESHOLD20

overflowtablespaceusers

INCLUDINGname;

● 如上例所示,name及之后的列必然被放入溢出列,而其他列根据PCTTHRESHOLD规则。

2、COMPRESS子句(键压缩)

与普通的索引一样,索引组织表也可以使用COMPRESS子句进行键压缩以消除重复值。

具体的操作是,在organization index之后加上COMPRESSn子句

● n的意义在于:指定压缩的列数。默认为无穷大。

例如对于数据(1,2,3)、(1,2,4)、(1,2,5)、(1,3,4)、(1,3,5)时

若使用COMPRESS则会将重复出现的(1,2)、(1,3)进行压缩

若使用COMPRESS 1时,只对数据(1)进行压缩

索引组织表的维护

索引组织表可以和普通堆表一样进行INSERT、UPDATE、DELETE、SELECT操作。

可使用ALTER TABLE ... OVERFLOW语句来更改溢出段的属性。

altertablet88addoverflow;--新增一个overflow

● 要ALTER任何OVERVIEW的属性,都必须先定义overflow,若建表时没有可以新增

altertablet88pctthreshold15includingname;--调整overflow的参数

altertablet88initrans2overflowinitrans4;--修改数据块和溢出段的initrans特性

● 关于initrans的概念参考http://space.itpub.net/265709/viewspace-166534

索引组织表的应用


Heap Table 就是一般的表,获取表中的数据是按命中率来得到的。没有明确的先后之分,在进行全表扫描的时候,并不是先插入的数据就先获取。数据的存放也是随机的,当然根据可用空闲的空间来决定。

IOT就是类似一个全是索引的表,表中的所有字段都放在索引上,所以就等于是约定了数据存放的时候是按照严格规定的,在数据插入以前其实就已经确定了其位置,所以不管插入的先后顺序,它在那个物理上的那个位置与插入的先后顺序无关。这样在进行查询的时候就可以少访问很多blocks,但是插入的时候,速度就比普通的表要慢一些。
适用于信息检索、空间和OLAP程序。

索引组织表的适用情况:
1、 代码查找表。
2、 经常通过主码访问的表。
3、 构建自己的索引结构。
4、 加强数据的共同定位,要数据按特定顺序物理存储。
5、 经常用between…and…对主码或唯一码进行查询。
数据物理上分类查询。如一张订单表,按日期装载数据,想查单个客户不同时期的订货和统计情况。

经常更新的表当然不适合IOT,因为oracle需要不断维护索引,而且由于字段多索引成本就大。

如果不是经常使用主键访问表,就不要使用IOT


转载自:http://www.blogjava.net/wxqxs/archive/2008/10/14/237181.html

分享到:
评论

相关推荐

    三维GlS数据库的空间索引技术研究与探索

    在对三维索引技术进行了详细的研究的基础上,结合现实应用方面的需求,建立了符合海量点数据方面应用的八义树+二叉树的复合数据组织索引模型。最后利用以上述的复合数据组织索引模型构建了实验模型,并据此实验结果...

    sql 聚集索引和非聚集索引(详细整理)

    聚集索引 一种索引,该索引中键值的...例如,如果应用程序执行 的一个查询经常检索某一日期范围内的记录,则使用聚集索引可以迅速找到包含开始日期的行,然后检索表中所有相邻的行,直到到达结束日期。这样有助于提

    sqlite3_page_explorer:跨平台应用程序,用于探索表和索引的内部组织

    Sqlite3页面资源管理器该应用程序使用户可以打开Sqlite数据库并探索各种对象(例如架构,表和索引)的内部组织。 要了解Sqlite3数据的组织方式,请参阅。关于Sqlite(来自其网站) SQLite是一个自包含的,高可靠性,...

    oracle 表分区

    分区功能能够将表、索引或索引组织表进一步细分为段,这些数据库对象的段叫做分区。每个分区有自己的名称,还可以选择自己的存储特性。每个分区都是一个独立的段(SEGMENT),可以存放到相同(不同)的表空间中。从...

    达内总结的java最新笔试题core java,sql,web应有尽有

    116.索引组织表,聚蔟表的用途; 解答: 索引组织表:数据按主码存储和排序,同索引结构一样,不过数据直接存储于主码后面。适用于信息.检索、空间和OLAP程序。索引组织表的适用情况: a.代码查找表。 b.经常通过主码...

    海量数据库解决方案_韩国_李华植

    1.2.1 堆表和索引组织表的比较19 1.2.2 索引组织表的结构和特征20 1.2.3 逻辑rowid和物理猜(physical guess)22 1.2.4 溢出区(overflow area)24 1.2.5 索引组织表的创建25 1.3 聚簇表26 1.3.1 聚簇表的概念27 1.3.2 ...

    海量数据库解决方案_韩国_李华植_Part02

    1.2.1 堆表和索引组织表的比较19 1.2.2 索引组织表的结构和特征20 1.2.3 逻辑rowid和物理猜(physical guess)22 1.2.4 溢出区(overflow area)24 1.2.5 索引组织表的创建25 1.3 聚簇表26 1.3.1 聚簇表的概念27 1.3.2 ...

    数据结构算法与应用(C++语言描述).rar

    11.4.1 索引顺序访问方法 344 11.4.2 m 叉搜索树 345 11.4.3 m 序B-树 346 11.4.4 B-树的高度 347 11.4.5 B-树的搜索 348 11.4.6 B-树的插入 348 11.4.7 B-树的删除 350 11.4.8 节点结构 353 11.5 应用 354 ...

    利用哈希索引进行健壮的多关键字文本内容检索-研究论文

    由于文档标识是由哈希索引键完成的,因此,一旦选择阅读文档,然后解密应用到特定用户的文档,文本内容的存储就以加密数字进行。 针对不同主题的真实和人工文本内容数据集文件进行了实验。 结果表明,所提出的基于...

    嵌入式gis空间索引及数据模型的设计文档

    一种面向移动导航设备的电子地图空间索引结构.pdf 改进的四叉树索引.pdf 移动导航地图路网的数据描述和组织.pdf 面向移动导航设备的数字地图分级组织与预取策略.PDF 跨平台嵌入式GIS模型的研究与应用.pdf

    数据结构、算法与应用:C++语言描述(原书第2版)第二部分

    13.3.3 重新组织比赛 13.3.4 类completeWinnerTree 13.4 输者树 13.5 应用 13.5.1 用最先适配法求解箱子装载问题 13.5.2 用相邻适配法求解箱子装载问题 13.6 参考及推荐读物 第14章 搜索树 14.1 定义 14.1.1 二叉...

    数据结构在现实生活中的应用.doc

    小谈数据结构在现实生活中的应用 数据结构在计算机科学界至今没有标准的定义。根据各自的理解的不同而有不同的 表述方法:数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种 或多种特定关系的...

    金属材料标准的应用数据库MtrRvw

    化学分析的要求统一保存在“试验要求数据表”,该表包含指向特定化学分析方法的索引。 2.3.2 机械性能、试验要求及其表达: 机械性能保存在“机械性能汇总表”; 每种试验的试验要求保存在各自的“试验要求数据表” ...

    计算机组织与体系结构性能设计(第6版)

    计算机组织与体系结构性能设计(第6版) ...18.3 高速缓存一致性和MESI协议 18.4 机群系统 18.5 非对称存储器存取 18.6 向量计算 18.7 参考文献 18.8 关键词、复习题和习题 附录 词汇表 参考文献 索引

    ASP.NET基于CS应用程序平台多语种技术应用研究(源代码+thesis).zip

    ASP.NET MVC是一种成熟的开发框架,它采用模型-视图-控制器的设计模式,将应用程序的逻辑和界面分离,提供了更好的代码组织和可维护性。我们选择ASP.NET MVC框架是因为它具有良好的可扩展性和灵活性,可以轻松地添加...

    数据结构算法与应用-C++语言描述

    11.4.1 索引顺序访问方法 344 11.4.2 m 叉搜索树 345 11.4.3 m 序B-树 346 11.4.4 B-树的高度 347 11.4.5 B-树的搜索 348 11.4.6 B-树的插入 348 11.4.7 B-树的删除 350 11.4.8 节点结构 353 11.5 应用 354 ...

    PHP和MySQL Web应用开发核心技术 源码

    ·对数据访问详细讨论,包含事务处理、外键和索引。 ·利用PHP正则表达式的功能强大的数据验证技术。 ·介绍计划Web应用程序,包括用户界面和用户管理。 ·提供关于保证Web应用程序安全性的系统化指南。 ·涵盖广泛...

    Navicat Premium操作手册.7z

    3Oracle 外部表访问参数59Oracle 索引组织表59Oracle 索引组织表选项59Oracle 视图60Oracle 函数或过程61Oracle 数据库链接62Oracle 索引63Oracle Java65Oracle 实体化视图66Oracle 实体化视图日志68Oracle 包69...

    schema-index-generator:概念验证应用程序,用于扫描以假定目录结构组织的一组JSON模式,以生成按项目分组的模式索引

    架构索引生成器概念验证应用程序,用于扫描以假定目录结构组织的一组JSON模式,以生成按项目分组的模式索引。概述去做。去做大致从最高优先级到最低优先级: 去做。背景此项目是更大/更广泛的工作的一部分,该工作使...

    空间数据库技术应用:属性数据采集与编辑.ppt

    一个数据表包含多个文件,如数据文件、索引文件、备注文件等。 数据库 是比数据表更大的数据组织形式。数据库是具有特定联系的多个数据表的机会。数据库的内部构造是文件的集合,这些文件之间存在某种联系,不能孤立...

Global site tag (gtag.js) - Google Analytics