关于延迟段创建-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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值