ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【11gR2新特性】extent延迟创建

【11gR2新特性】extent延迟创建

原创 Linux操作系统 作者:杨奇龙 时间:2011-07-07 15:40:51 0 删除 编辑

在使用create table中的storage参数时,在11g和10g中表现的不一样,步骤如下:
database 10g:
SQL> create table tab10 (id char(1000),name char(1000)) storage (minextents 2) pctfree 50 pctused 20;
Table created.
SQL> select object_id,object_name from dba_objects where object_name='TAB10';
OBJECT_ID OBJECT_NAME
---------- ------------------------------
52957         TAB10

SQL> select extent_id,file_id,relative_fno,block_id,blocks from dba_extents where segment_name='TAB10';
EXTENT_ID FILE_ID RELATIVE_FNO BLOCK_ID BLOCKS
-------------------- --------- -------- ----------
0          8           8       521         128
1          8           8       649          128
database 11g:
SQL> create table tab11 (id char(1000),name char(1000)) storage(minextents 2) pctfree 50 pctused 20;
Table created.
SQL> select object_id,object_name from dba_objects where object_name='TAB11';
OBJECT_ID OBJECT_NAME
---------- ------------------------------
75815 TAB11
SQL> select extent_id,file_id, relative_fno, block_id, blocks from dba_extents where segment_name='TAB11';
no rows selected
向表中插入数据:
SQL> insert into tab11 values ('1','a');
1 row created.
SQL> commit;
Commit complete.
SQL> select extent_id,file_id, relative_fno, block_id, blocks from dba_extents where segment_name='TAB11';
EXTENT_ID  FILE_ID   RELATIVE_FNO  BLOCK_ID   BLOCKS
---------- ---------- ------------ ---------- ----------
0             10          10        384        128
1             10          10        512        128
在11g中,即使指定了storage参数,如果没有数据插入也不会给它分配extent!此特性和参数:deferred_segment_creation有关。此参数默认是打开的。这种情况下,当用户使用exp导出时,是不会导出这些未分配段的空表的,并且没有任何警告提示。所以建议关闭次参数。

SQL> show parameter segment
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation boolean TRUE
rollback_segments string
transactions_per_rollback_segment integer 5
SQL> alter system set deferred_segment_creation=FALSE scope=both;
System altered.
SQL> drop table tab11 purge;
Table dropped.
SQL> create table tab11 (id number) storage(minextents 2) pctfree 50 pctused 20;
Table created.
SQL> select extent_id,file_id, relative_fno, block_id, blocks from dba_extents where segment_name='TAB11';
EXTENT_ID  FILE_ID  RELATIVE_FNO BLOCK_ID BLOCKS
---------- -------- ------------ -------- ----------
0          10         10           384     128
1          10         10           512     128

希望使用11gr2的同学注意!!
----------------------------------EOF-----------------------------------------

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-701621/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7698766