Oracle表空间的扩张情况

这个实验得到的结论是:在系统默认情况下,我们创建表分配空间为64K,当数据量达到64K,系统将再次申请64K,而且 表的扩张 在还没有commit的情况下就已经发生,rollback后系统不会归还空间。


创建一张每行1K的新表,并插入一条数据;
SQL> create table testsegm (c1 char(1024));

Table created.

SQL> insert into testsegm values ('a');

1 row created.

利用系统表user_segments可以查询空间分配情况,默认系统分配8个BLOCK,每个BLOCK8K,新表默认分配空间大小为8*8K=64K
SQL> select tablespace_name,bytes,blocks,extents from user_segments where segment_name='TESTSEGM';

TABLESPACE_NAME                     BYTES     BLOCKS    EXTENTS
------------------------------ ---------- ---------- ----------
TS_XZH                              65536          8          1

继续插入数据,当达到32行数据(每行1K,可以估算表32K),再查询表user_segments
SQL> insert into testsegm select c1 from testsegm;

1 row created.

SQL> /

2 rows created.

SQL> /

4 rows created.

SQL> /

8 rows created.

SQL> /

16 rows created.

SQL> select count(*) from testsegm;

  COUNT(*)
----------
        32

SQL> select tablespace_name,bytes,blocks,extents from user_segments where segment_name='TESTSEGM';

TABLESPACE_NAME                     BYTES     BLOCKS    EXTENTS
------------------------------ ---------- ---------- ----------
TS_XZH                              65536          8          1

我们发现这时候还没有达到扩张的LIMITED
再插入32行数据,总记录数达到64行
SQL> insert into testsegm select c1 from testsegm;

32 rows created.

SQL> select count(*) from testsegm;

  COUNT(*)
----------
        64

再查询表user_segments,发现已经扩张到16个BLOCK,表占用空间为128K
SQL> select tablespace_name,bytes,blocks,extents from user_segments where segment_name='TESTSEGM';

TABLESPACE_NAME                     BYTES     BLOCKS    EXTENTS
------------------------------ ---------- ---------- ----------
TS_XZH                             131072         16          2

这时候回滚
SQL> rollback
  2  ;

Rollback complete.

SQL> select count(*) from testsegm;

  COUNT(*)
----------
         0

再查询表user_segments,这里看到没有变化,扩张的空间不会回收
SQL> select tablespace_name,bytes,blocks,extents from user_segments where segment_name='TESTSEGM';

TABLESPACE_NAME                     BYTES     BLOCKS    EXTENTS
------------------------------ ---------- ---------- ----------
TS_XZH                             131072         16          2


你可能感兴趣的:(表空间,扩张,USER_SEGMENTS)