Oracle 11gr2 的新特性-延迟段创建

在Oracle 11gr2中创建表所采用的默认模式是延迟段创建(deferred segment creation),即create table时,不会分配任何存储空间,要延迟到insert时才会真正创建段(segment),下面通过一个小例子来说明:
1. 11gr2之前:
1) 确认数据库版本:
A105024@O02DMS1>select * from v$version where rownum<2;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
2) 创建测试表:
A105024@O02DMS1>create table test (id number);

Table created.

3) 查看空间分配情况:
A105024@O02DMS1>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';
SEGMENT_NAME            EXTENTS     BLOCKS      BYTES
------------------------------------ ----------           ----------         ----------
TEST                                    1                     8                   65536

可以发现在11gr2之前,创建表的同时就已经为该表默认分配了一个8 block的segment。

2. 11gr2:
1) 确认数据库版本:
A105024@O07DMS0>select * from v$version where rownum<2;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production
2) 创建测试表:
A105024@O07DMS0>create table test (id number);

Table created.
3) 查看空间分配情况:
A105024@O07DMS0>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';

no rows selected

可以发现在11gr2中,创建表并不为该表分配任何空间。
4) 插入数据:
A105024@O07DMS0>insert into test values(1);

1 row created.

5) 再次查看空间分配情况:
A105024@O07DMS0>select segment_name,EXTENTS,BLOCKS,BYTES from user_segments where segment_name='TEST';

SEGMENT_NAME        EXTENTS     BLOCKS      BYTES
-------------------------------------------- ---------- ----------
TEST                                  1                  128           1048576

可以看到知道第一个insert后,才真正为表分配空间。

11gr2中这样做无非就是为了节省空间,不过本人倒是觉得这样节省下来的空间很少,却带来了一些意想不到的坏处,比如我就曾碰到用exp/expdp无法导出延迟段创建的表,导致用imp/impdp导入时丢失了这些表的定义。

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

转载于:http://blog.itpub.net/26277071/viewspace-708835/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值