Oracle9i tablespace空間分配中initial_extent與LMT,DMT

tolywang發表於2008-11-28

1,Oracle9i 本地管理表空間(LMT), autoallocate的情況下,預設extent大小是多少 ?

CREATE TABLESPACE SYSTEM DATAFILE
  '/u01/product/oradata/epd2/system01.dbf' SIZE 800M AUTOEXTEND OFF
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K;

這種情況由系統分配一個預設大小的區大小
/*先分配16個64K的extent,
0-15 extents 每個大小是64K 合計大小 1M
16-79 extents 每個大小是1M 合計大小 63M --以上兩項大小合計 64M
80-199 extents 每個大小是8M 合計大小 960M --以上三項大小合計 1024M=1G
200-?? extents 每個大小是64M
*/

Oracle10g 的分配又不一樣。參考 http://space.itpub.net/35489/viewspace-84692  

 

 

2,Oracle9i 本地管理表空間(LMT), uniform. size 的情況下,不寫storage部分,預設initial_extent, next_extent 都是
   uniform. size 大小。 假設uniform. size = 5M , 沒有storage部分的時候,select * from  dba_segments where segment_name = table_name
   發現 initial_extent , next_extent 以及bytes 都是 5M,  假設寫了initial_extent=7M, 那麼查詢出來的新建table
   大小是10M(也就是由於7M大於5M,所以導致擴充套件uniform. size extent兩次,達到10M), 而initial_extent值是7M, next extent照樣是
   uniform. size(5M), 可以看出initial_extent引數值只是迫使extent按照uniform. size整數倍進行擴充套件,本身值不起作用。

 

3, 如果指定extent manangement dictionary 不再指定default storage的話,那麼預設的initial_extent和next_extent分別為:

     SQL> create tablespace user2 datafile 'd:\oracle\oradata\ora9    \user2.dbf' size 10m  extent management dictionary
                   表空間已建立。

     SQL>  select initial_extent,next_extent from user_tablespaces where  tablespace_name='USER2';

                    INITIAL_EXTENT NEXT_EXTENT
                   --------------                -----------
                   20480                   20480

4, 如果指定extent manangement dictionary ,同時指定default storage(initial 128k next 128k)的話,就是用指定值。


5, 如果extent manangement local的話,就不能再指定default storage了 .

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-503836/,如需轉載,請註明出處,否則將追究法律責任。

相關文章