索引组织表
索引组织表的存储结构是按照主键的 B-tree 结构搭建的。不象普通的表(堆积表——数据的存储是无序进行的),索引组织表中的数据是按照主键的 B-tree 结构排序后保存的。包括保存索引组织表行的主键字段值在内, B-tree 中的每一 个索引项还保存了非键字段的值。
组织索引表实际上就是索引的表化
1)创建格式
create table IOT
(
col1 varchar2(10),
col2 varchar2(20),
constraint pk_name primary key (col1)
)
organization index ;
2) 注意事项
创建 IOT 时,必须要设定主键,否则报错。
索引组织表实际上将所有数据都将以索引的形式存储。
1.1. 索引组织表的相关属性
1) OVERFLOW 子句(行溢出)
因为所有数据都放入索引,所以当表的数据量很大时,会降低索引组织表的查询性能。此时设置溢出段将主键和溢出数据分开来存储以提高效率。溢出段的设置有两种格式:
PCTTHRESHOLD n:制定一个数据块的百分比,当行数据占用大小超出时,该行的其他列数据放入溢
出段
INCLUDING column_name:指定列之前的列都放入索引块,之后的列都放到溢出段
2) COMPRESS 子句(键压缩)
与普通的索引一样,索引组织表也可以使用 COMPRESS 子句进行键压缩以消除重复值。具体的操作是,在 organization index 之后加上 COMPRESS n 子句。
如果使用 coompress 则会将所有列进行压缩
如果使用 coompress 1,那么只会将第一列压缩
1.2. 创建索引组织表
创建一个 IOT 表(T_IOT),表中包含两个字段, col1 varchar2(10)和 col2 varchar2(10),
主键为复合主键。要求: col2 及之后的列放入溢出列,而其他列根据 PCTTHRESHOLD 规则存入表空间
SQL> create table t_iot (col1 varchar2(10),col2 varchar2(20),
2 constraint pk_col1_col2 primary key (col1,col2)
3 )
4 organization index tablespace users
5 pctthreshold 20 including col2
6 overflow tablespace example;
Table created.
SQL> desc t_iot
Name Null? Type
----------------------------------------- -------- --
COL1 NOT NULL VARCHAR2(10)
COL2 NOT NU来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31397003/viewspace-2126938/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/31397003/viewspace-2126938/