oracle-表结构分析
时间:2021-07-01 10:21:17
帮助过:11人阅读
TABLE "CS_GDBZDATA"."ACCT_WORK_REGISTER"
( "CURDATE" VARCHAR2(
10)
NOT NULL ENABLE,
"MWORKBEGINTIME" VARCHAR2(
8),
"MWORKENDTIME" VARCHAR2(
8),
"AWORKBEGINTIME" VARCHAR2(
8),
"AWORKENDTIME" VARCHAR2(
8),
"NWORKBEGINTIME" VARCHAR2(
8),
"NWORKENDTIME" VARCHAR2(
8),
"WEEK" VARCHAR2(
1),
"WORKFLAG" VARCHAR2(
10),
"AREATYPE" VARCHAR2(
10),
"WORKFLAGHK" VARCHAR2(
10),
"WORKFLAGMC" VARCHAR2(
10)
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED
40 INITRANS
1 MAXTRANS
255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS
1 MAXEXTENTS
2147483645
PCTINCREASE 0 FREELISTS
1 FREELIST GROUPS
1 BUFFER_POOL
DEFAULT FLASH_CACHE
DEFAULT CELL_FLASH_CACHE
DEFAULT)
TABLESPACE "CS_GDBZDATATBS" ;
ALTER TABLE "CS_GDBZDATA"."ACCT_WORK_REGISTER" MODIFY ("CURDATE"
NOT NULL ENABLE);
这些参数涉及到存储过程
一般就默认
可根据业务需求相应变更
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
关键字段解释
这时候 PCTFREE 代表着设定为 10 ,意思就是说,当 BLOCK 使用到达 90% 的时候,就不可以在使用了,
这个 BLOCK 应该从 FREELIST 列表中移除 (un-link) 。
为何要保留 10% 的空间呢?
这是为了提供 update 数据时所可能增加的空间使用,如果空间保留的太小,就容易发生 row chaining 。
假设 PCTUSED 为 40 ,代表当我们把水杯的水喝到剩下 40% 以下时,侍者就会知道需要加水了。
如果说 PCTUSED 设的太大,例如70 隐含的意义是,这个杯子的利用率增加,但是侍者频繁的服务造成了负荷 (I/O Overhead) 。
喝水( 如同 DELETE 事务操作 ) ,放回 FREELIST ,加水 ( 如同 INSERT 事务操作 ) 。
INITRANS 指的是一个 BLOCK 上初始预分配给并行交易控制的空间 (ITLs)
MAXTRANS 指的是如果 INITRANS 空间不够用了,就会自动扩展 ITL ,直到最大值也就是 MAXTRANS 值为止
如果你建库的时候写上LOGGING,表时你想在建库及随后的操作语句中记录日志log.
NOCOMPRESS LOB是对大对象字段LOB不压缩
oracle-表结构分析
标签:一个 chain reg pac tor 操作 iat ndt xtran