`
liwenshui322
  • 浏览: 512332 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle索引组织表

 
阅读更多

        索引组织表(Index organized table, IOT)就是存储在一个索引结构中的表。与堆组织表无序存储不同的是,IOT中的数据按主键存储和排序。

        相比对组织表,索引组织表能够节省一部分空间,因为,使用堆组织表时,我们必须为表和表的主键上的索引分别留出空间。而IOT则可以省去主键索引的开销,因为数据就是按顺序存储的,可以当做索引使。换句话说,如果你只会通过一个表的主键来访问这个表,这个表就适合创建成索引组织表。

       举例:

       1.一个客户有很多地址信息,客户是一个表,客户地址信息是另外一个表。读取一个客户地址信息的时候,如果这个客户的所有地址信息都存放在相邻的地方,读取速度就会快一些。这个时候,客户地址信息表适合创建成IOT。

       2. 经常查看一支股票的最近几天的信息,股票信息一般是千万级别的数据,如果能够把最近几天的信息存放在一起就会快很多。

 

        参数说明:

        1. NOCOMPRESS,COMPRESS N

         假如表T主键由A,B,C3列组成,也就是A,B,C三个才能唯一确认T表一条记录。那么在T表可能有如下的记录:记录1:Sys,Table,t1,记录2:Sys,Tbale,t2,记录3:Sys,Table,t3等等。如果创建表的时候使用NOCOMPRESS,每条记录的每一个主键都会存储,也就是A列Sys值会被存储很多遍。如果COPRESS 1,就会压缩1列,比如A列只会存储一个Sys。如果COMPRESS 2,就会压缩2列,A,B列都会压缩,A,B组合在一起的重复值,只会存储一次,比如:Sys,Table只会存储一次。

 

        2. overflow,including,pctthreshold

        如果一个数据块能够尽可能地存储很多行,那么一次请求跨块访问的机会就会降低很多,效率也会提高。这三个参数,就是为了根据实际情况,控制一个数据块存储数据的行数。

        某一行的数据量如果非常大,就会影响存储这一行数据块存储的总行数。为了存储更多的行,需要将这一行的某些数据存储到别的地方,也就是溢出,由overflow参数控制,如果写了overflow说明允许将一行的数据分开存储到不同块上。那么溢出的条件是什么?有2个,1,如果这一行的数据超过了块大小的一个百分比,那么这一行的数据必须溢出。这个百分比由pctthreshold设置。2. 如果希望某一些列不存储到其他块上,用including设置。如果知道表中有一些列经常用到,有一些列很少用到。那么可以用including参数指定那些经常访问的列存储在当前块。但是,如果不确定哪些列经常被访问,而知道一个块一般应该存储多少行数据,那么就用ptthreshold参数。比如,你希望一个块存储20行,那么每一行的大小不应该超过1/20=5%,那么pctthreshold设置成5。也就是说,如果这一行的大小超过了块总空间的5%,那么这一行的有些数据必须溢出,最大不能占用这个块的5%.

      

 

0
1
分享到:
评论

相关推荐

    oracle 索引组织表的深入详解

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

    Oracle索引与索引组织表PPT教案.pptx

    Oracle索引与索引组织表PPT教案.pptx

    索引和索引组织表介绍

    Oracle官方concept中有关索引和索引组织表的介绍,PDF版本。欢迎您的下载

    Navicat Premium操作手册.7z

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

    oracle索引开发指南

    2)在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构; 3)在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度; 4)在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其...

    oracle 索引的相关介绍(创建、简介、技巧、怎样查看) .

    5、Oracle支持多种类型的索引,可以按列的多少、索引值是否唯一和索引数据的组织形式对索引进行分类,以满足各种表和查询条件的要求。(请见附件) a. 单列索引和复合索引 b.B树索引(create index时默认的类型) ...

    oracle9i oracle11g oracle10g 性能调优 基础学习 视频地址

    1z0-033-15 讨论不同类型索引 索引组织表(簇化表) OLTP 有什么性质要求 13 1z0-033-18-changed 服务器庞大日常开支,导致oracle不断切换;低效率调度;没有价值资源分配;无法管理数据库制定资源;按比例把资源...

    MySQL索引 聚集索引

    MySQL索引 聚集索引 如果你想了解MySQL索引查询优化,你首先应该对MySQL数据组织结构、B-Tree索引、聚集索引,次要索引有一定的了解,才能够更好地理解MySQL查询优化行为。这里主要探讨MySQL InnoDB的聚集索引。

    oracle 表分区

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

    Oracle_11gR2_概念 oracle白皮书 concept

    第 1 章 Oracle 数据库简介 第 2 章 表和表簇 第 3 章 索引和索引组织表 第 4 章 分区、 视图和其它模式对象 第 5 章 数据完整性 第 6 章 数据字典和动态性能视图

    Oracle表的分类以及相关参数的详解

    2、索引组织表:表存储在索引结构中,利用行本身排序存储。在堆中,数据可能被填到任何适合的地方,在索引组织表中,根据主关键字,以排序顺序来存储数据。3、聚簇表:几张表物理存储在一块,通常是同一个数据块上。...

    oracle11g参考文档高清版

    oracle参考书共14章。序言,目录,数据库简介,表和表簇,索引和索引组织表,分区视图,,,,,等

    Oracle四大宝典之四:Oracle 调优入门到精通

    你所管理的Oracle系统性能是否“极好”,你的回答可能是“否”。你的系统在正常运行的情况下是否能降低资源的消耗?性能问题是Oracle系统...第13章 索引组织表 第14章 重要的ORACLE特性 第15章 分区 第16章 实体化视图

    论文研究-基于OracleSpatial的GIS数据组织及查询.pdf

    在确定了采用对象—关系模型来存储GIS数据后,比较了空间数据的两种导入方式,在此基础上,选用EasyLoader工具将GIS数据导入到Oracle数据库中,再用四元树索引为其建立索引。最后,选择Java作为开发工具,采用JDBC...

    Oracle database 11g Concepts中英文对照

    第 3 章 索引和索引组织表 第 4章 分区、 视图和其他模式对象 第 5 章 数据完整性 第 6 章 章 数据字典和动态性能视图 第 8 章 服务器端编程:PL/SQL 和 Java 第 9 章 数据并发性和一致性 第 10 章 事务 第 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    Oracle自学(学习)材料 (共18章 偏理论一点)

    11 管理表 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张表 11-11 创建临时表 11-13 创建表:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区表 11-17 ...

Global site tag (gtag.js) - Google Analytics