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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章