Oracle 10.2.0.4
16K block size
我们一般在定义表的时候可以看到脚本中有两个参数,initrans 1 maxtrans 255 , 就是定义表的数据块头部
ITL槽的个数, initrans 表示初始的ITL个数, 而maxtrans 表示最大的ITL数量 。 但是ITL信息也是需要占用
空间的, 假设pctfree 为 10% 。
数据块头部的ITL槽的大小分配刚开始是分配了多大 (按照16K的block size大小来计算的话, ) ? 后期ITL槽
扩展的过程中是使用block中 90% 空间中的剩余部分 ? 还是说和数据update一样, 也可以使用准备用于更新
过程中行长度变化的用于扩展的10% (pctfree) ? 简单一句话, ITL 槽的扩展和data的插入或update 导致
的block空间使用是一样的, 还是说ITL槽的总大小是限制的 (当然在255个以内) ??
或者说ITL槽是否只在数据块头部 ? 如果是,那么一开始, Oracle就应该为ITL预留足够的空间,否则ITL槽设置
的 255 的maxtrans 应该是没有意义的 ?
CREATE TABLE DFMS.EDIBTO850_MAIN
(
CONTROLNUMBER VARCHAR2(40 BYTE) NOT NULL,
ISA06 VARCHAR2(50 BYTE),
CREATE_TIME DATE DEFAULT sysdate
)
TABLESPACE LOG_DATA
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
STORAGE (
INITIAL 10M
NEXT 20M
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
BUFFER_POOL DEFAULT
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;