增加数据时,会使用段中找到的第一个能放下此数据的自由空间。删除数据后,允许以后的insert、update重用这部分空间。可以将堆组织表看做是一个很大的无序行集合。
如下方法可以了解给定表的create table语句中主要有哪些选项:
JEL@JEL >create table test ( x int primary key,y date,z clob);
JEL@JEL >select dbms_metadata.get_ddl('TABLE','TEST') from dual;
DBMS_METADATA.GET_DDL('TABLE','TEST')
--------------------------------------------------------------------------------
CREATE TABLE "JEL"."TEST"
( "X" NUMBER(*,0),
"Y" DATE,
"Z" CLOB,
PRIMARY KEY ("X")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
DBMS_METADATA.GET_DDL('TABLE','TEST')
--------------------------------------------------------------------------------
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"
LOB ("Z") STORE AS (
TABLESPACE "SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
NOCACHE LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
freelists--仅适用于MSSM。每个表都会在一个freelist上管理堆中分配的块,一个表可以有多个freelist。如果有多个用户并发对表执行插入操作,配置多个freelist会改善性能,但要以额外的存储空间为代价。
pctfree--ASSM和MSSM都适用。这个参数用于控制能否将一行增加到一个块上和控制因后续更新导致的行迁移
pctused--仅适用于MSSM。度量一个块什么时候才能插入行。如果块中已经用的空间小于pctused,就可以插入行
initrans--ASSM和MSSM都适用。为块初始分配的事物槽。设置太低,肯能导致多个用户访问一个块的并发问题。
注意,LOB段中的LOB数据并不适用pctfree/pctused参数设置。这些lob块总会填入数据,直到达到最大容量,而且仅当完全为空时才返回freelist
堆表具有的唯一优点是 插入数据不需要采取任何措施,只需要顺其自然地安装插入的顺序存储,减少了插入大量数据的代价.
如下方法可以了解给定表的create table语句中主要有哪些选项:
JEL@JEL >create table test ( x int primary key,y date,z clob);
JEL@JEL >select dbms_metadata.get_ddl('TABLE','TEST') from dual;
DBMS_METADATA.GET_DDL('TABLE','TEST')
--------------------------------------------------------------------------------
CREATE TABLE "JEL"."TEST"
( "X" NUMBER(*,0),
"Y" DATE,
"Z" CLOB,
PRIMARY KEY ("X")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM" ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
DBMS_METADATA.GET_DDL('TABLE','TEST')
--------------------------------------------------------------------------------
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"
LOB ("Z") STORE AS (
TABLESPACE "SYSTEM" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10
NOCACHE LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT))
freelists--仅适用于MSSM。每个表都会在一个freelist上管理堆中分配的块,一个表可以有多个freelist。如果有多个用户并发对表执行插入操作,配置多个freelist会改善性能,但要以额外的存储空间为代价。
pctfree--ASSM和MSSM都适用。这个参数用于控制能否将一行增加到一个块上和控制因后续更新导致的行迁移
pctused--仅适用于MSSM。度量一个块什么时候才能插入行。如果块中已经用的空间小于pctused,就可以插入行
initrans--ASSM和MSSM都适用。为块初始分配的事物槽。设置太低,肯能导致多个用户访问一个块的并发问题。
注意,LOB段中的LOB数据并不适用pctfree/pctused参数设置。这些lob块总会填入数据,直到达到最大容量,而且仅当完全为空时才返回freelist
堆表具有的唯一优点是 插入数据不需要采取任何措施,只需要顺其自然地安装插入的顺序存储,减少了插入大量数据的代价.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29337971/viewspace-1062712/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29337971/viewspace-1062712/