[bbk3153] 第62集 - Chapter 15-Application Tuning(02)

Index-Organized Tables

IOT表要求必须有主键.heap表可以没有主键.没有主键的表,不能称之为IOT表.

 

IOT and Heap Tables

  • Compared to heap tables,IOTs have:
    • Faster key-based access to table data
    • Reduced storage requirements
    • Secondary indexes and logical rowids
  • IOTs have the following restrictions:
    • -Must have a primary key
    • -Cannot be clustered

Creating IOT

CREATE TABLE country
(
    country_id             CHAR(2) CONSTRAINT contry_id_nn NOT NULL,
    country_name        VARCHAR2(40),
    currency_nbame     VARCHAR2(25),
    currency_symbol    VARCAHR2(3),
    map BLOB,
    flag BLOB,
    CONSTRAINT country_c_id_pk PRIMARY KEY(country_id))
    ORGANIZATION INDEX
    TABLESPACE indx
    PCTTHRESHOLD 20
    OVERFLOW TABLESPACE users;

Keyword ORGANIZATION INDEX指明IOT表.

PCTTRHESHOLD 20,OVERFLOW TABLESPACE users,两个参数结合使用:当索引内容占到一个索引块大小的20%的时候,就会overflow到user tablespace里面.节省空间,使一个索引块里面存放的索引entry更多;一个索引块里面存放的索引entry更多,那么hight就会越低.height越低,I/O的次数就会越少,性能就会提高.

IOT Row Overflow

pctthreshold和including这两个关键字,是用来控制那些列放在叶子block,那些列存放在overflow指定的segment.当二者发生冲突的时候, 以关键字pctthreshold优先.

create table iot1
(
        x       int,
        y       date,
        z       varchar2(2000),
        constraint iot_pk1      primary key(x)
)
organization index
pctthreshold 10
overflow
/

上图图解:通过指定关键字pctthreshold 10,说明每行所有字段累加超过叶子节点块大小的10%时,就会将多余出的数据,存放于overflow指定的表空间中.

CREATE TABLE iot2
(
        x       int,
        y       date,
        z       varchar2(2000),
        constraint iot_pk2 primary key(x)
)
organization index
including y
overflow
/

图解:因为在脚本中指定了including y,也就是说列y(包含y)左边的所有列都将包含在叶子节点所在的块中.列y右边的字段将直接放在overflow默认的表空间里面.上图清晰可见.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/arcer/archive/2013/05/03/3056443.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值