資料表建立引數介紹(三)

realkid4發表於2011-03-06

PART2、儲存結構相關引數

 

storage關鍵字裡,包括了儲存上對資料物件空間分配的一些重要引數。其中的核心內容控制了Oracle如何給這個資料表物件分配空間。

 

在這裡,我們需要說明一下資料表空間Tablespace空間管理的機制問題。storage關鍵字裡面涉及到引數取值通常來自我們使用表空間的設定。資料表邏輯上是一種段物件segment object(Data Segment)。Data Segment的空間管理是透過Tablespace表空間進行管理的。

 

在管理空閒空間和分配空間的問題上,有字典管理方式(Dictionary Management Tablespace DMT)和本地管理方式(Locally Management Tablespace LMT)。(宣告:本部分參考陳吉平老師的《Oracle——高可用環境》

 

Oracle8i以前,對空閒空間是採用資料字典DML的方式進行管理。兩個底層資料字典UET$(已經使用過的空間)和FET$(未使用的空間)。當分配空間的時候,Oracle使用一系列遞迴的SQL來獲取空閒空間。這種結構存在一些潛藏的問題。

 

首先是並行操作引起的效能瓶頸。在尋找空間空間和分配空間的時候,Oracle對兩個資料字典表進行遞迴SQL呼叫和更新。在DML操作頻繁、空間分配管理的環境下,資料字典進行序列化操作,容易形成效能瓶頸。

 

第二、配合其他引數進行空間分配,容易形成過多的空間碎片。特別是在分配大小不一致的情況下。

 

最後,每個Segment所使用的所有extents資訊都儲存在資料字典中,如果資料表很大,字典資料表中記錄數目也就相對較多。那麼,進行批次的刪除或者資料表drop,會引起長時間的資料表更新操作。長時間的序列化更新操作進一步就會影響系統整體的空間管理分配能力。

 

 

鑑於這些問題,Oracle在8i之後,推出了本地管理表空間(LMT)機制,逐漸取代DMT方法。簡單的說,就是將空閒空間管理職責,由統一的資料字典管理下放到檔案級別,讓檔案自己管理空閒空間、分配空間。

 

LMT機制裡,Oracle將儲存資訊儲存在檔案的檔案頭部。在檔案頭上,存在一個點陣圖形式的儲存資訊段,其中記錄了該檔案空閒空間管理資訊。這樣,在表空間進行物件空間分配的時候,只需要進行檔案級別的資源協調,不需要訪問專門的資料字典。這樣也就避免了空閒資源帶來的爭用。

 

簡單介紹完DMT和LMT,我們回到storage引數設定上。

 

ü        initial引數

 

initial引數的含義是在建立這個物件(資料表)時,分配多大的空間。也就是初始段segment大小。

 

在我們提取出的資料表資訊中,initial引數設定為65536。系統的塊為8K,也就是8*1024=8192byte空間。initial為8*8K,也就是說,初始段空間分配8個資料塊,也就是64KB。

 

雖然initial引數是DMT時代確定的引數選項,但是在LMT機制下該引數依然有效,而且是必需的。Oracle是不能確定初始段空間大小。

 

 

ü        NEXT引數

 

LMT進行表空間管理下,NEXT引數子句是過時的。NEXT表示分配下一個空間片段的大小。在我們這個程式碼例子中,next=1048576,為1MB空間。

 

為了消除儲存中的碎片現象,目前我們都是透過設定統一大小uniform. size的extent空間。也就是每個分割槽的大小都是一致的。

 

 

ü        Minextents和Maxextents引數

 

這兩個引數的作用是比較明顯。資料物件在建立開始分配分割槽的個數和最大可分配分割槽的個數資訊。

 

 

SQL> create table t (id number);

 

Table created

 

SQL> select bytes, blocks, extents, min_extents, max_extents from user_segments where segment_name='T';

 

     BYTES     BLOCKS    EXTENTS MIN_EXTENTS MAX_EXTENTS

---------- ---------- ---------- ----------- -----------

65536          8          1           1  2147483645

 

 

 

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

相關文章