关于延迟段创建-P1
1 疑问点
P1页有句话说道:
在Oracle 11.2.0.3.0以上版本中,创建新表时默认一个区都不会分配。
其实SYS用户是不遵循这个规则的。
2 环境创建
以版本11.2.0.4.0为例子。
2.1 创建用户
授权,创建表空间,更改默认表空间。
SYS@zkm1> create user zkm identified by oracle;
User created.
SYS@zkm1> grant dba to zkm;
Grant succeeded.
SYS@zkm1> create tablespace tbs1 datafile '+data' size 10m;
Tablespace created.
SYS@zkm1> alter user zkm default tablespace tbs1;
User altered.
2.2 创建表test
新的用户zkm和sys用户下均创建表test。
SYS@zkm1> create table test(id int);
Table created.
SYS@zkm1> create table zkm.test(id int);
Table created.
SYS@zkm1> desc test
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
SYS@zkm1> desc zkm.test
Name Null? Type
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
2.3 查看表的段信息
可以看到用户sys的表没有遵循延迟段创建的规则。
SYS@zkm1> set linesize 500
SYS@zkm1> select owner,segment_name from dba_segments where owner in ('SYS','ZKM') and segment_name='TEST';
OWNER SEGMENT_NAME
------------------------------ ---------------------------------------------------------------------------------
SYS TEST
SYS@zkm1> insert into zkm.test values(1);
1 row created.
SYS@zkm1> select owner,segment_name from dba_segments where owner in ('SYS','ZKM') and segment_name='TEST';
OWNER SEGMENT_NAME
------------------------------ ---------------------------------------------------------------------------------
ZKM TEST
SYS TEST
SYS@zkm1> commit;
Commit complete.
2.4 延迟段创建相关参数
默认是启用的,可以动态修改为禁用后,只对修改后的表起作用。
对于已经延迟段创建并且还没有insert过数据的表,exp是不导出这些表的,expdp则不受影响。
SYS@zkm1> show parameter deferred_segment_creation
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
SYS@zkm1> alter system set deferred_segment_creation=false sid='*' scope=both;
System altered.
SYS@zkm1> create table zkm.test1(id int);
Table created.
SYS@zkm1> select owner,segment_name from dba_segments where owner='ZKM' and segment_name='TEST1';
OWNER SEGMENT_NAME
------------------------------ ---------------------------------------------------------------------------------
ZKM TEST1