oracle中用Create Table建立表時,Storage中參數的含義!
來源:互聯網
上載者:User
oracle|建立
可用於:資料表空間、復原段、表、索引、分區、快照、快照日誌
參數名稱預設值最小值最大值說明INITIAL5(資料區塊)2(資料區塊)作業系統限定分配給Segment的第一個Extent的大小,以位元組為單位,這個參數不能在alter語句中改變,如果指定的值小於最小值,則按最小值建立。NEXT5(資料區塊)1(資料區塊)作業系統限定第二個Extent的大小等於NEXT的初值,以後的NEXT值=前一NEXT大小乘以(1+PCTINCREASE/100),如果指定的值小於最小值,則按最小值建立。
如果在alter語句中改變NEXT的值,則下一個分配的Extent將具有指定的大小,而不管上一次分配的Extent大小和PCTINCREASE參數值。MINEXTENTS1(Extent)
復原段為2個Extent1(Extent)
復原段為2個Extent作業系統限定Segment第一次建立時分配的Extent數量MAXEXTENTS根據資料區塊大小而定1(Extent)
復原段為2個Extent無限制隨著Segment中資料量的增長,最多可分配的Extent數量PCTINCREASE50%
(Oracle816中為0%)0%作業系統限定指定第三個及其後的Extent相對於上一個Extent所增加的百分比,
如果PCTINCREASE為0,則Segment中所有新增加的Extent的大小都相同,等於NEXT的值,
如果PCTINCREASE大於0,則每次計算NEXT的值(用上面的公式),
PCTINCREASE不能為負數。
建立復原段時,不可指定此參數,復原段中此參數固定為0。OPTIMAL----不能小於復原段初始分配空間作業系統限定僅與復原段有關,當復原段因為增長、擴充而超過此參數的定義範圍時,Oracle系統會根據情況動態地重新分配Extents,試圖收回多分配的Extent。FREELISTS11資料區塊大小限制只能在CREATE TABLE、CLUSTER、INDEX中指定FREELISTS和FREELIST GROUPS參數。
模式對象中每一個自由列表組中自由列表的數量FREELIST GROUPS11取決於Oracle並行執行個體的數量使用者建立的資料庫物件的自由列表組的數量,只有用OPS並行伺服器選項時才使用這一參數,一個執行個體對應一個組。BUFFER_POOL------------給模式對象定義預設緩衝池(快取),該對象的所有塊都儲存在指定的快取中,對於資料表空間或復原段無效。
建議PCTINCREASE參數設定為0,可使片段最小化,使每一個Extent都相同(等於NEXT值)一旦建立了某個對象,它的INITIAL和MINEXTENTS參數不能修改(Oracle 816中可修改MINEXTENTS參數)對於NEXT和PCTINCREASE的任何修改都隻影響後來分配的那些Extent在分配一個新Extent時,系統直接按NEXT的值分配一個Extent,然後用公式:前一NEXT值*(1+PCTINCREASE/100) 計算出下一個應該分配的Extent的大小,並把計算結果儲存到相關資料字典的NEXT_EXTENT列上,做為下一個應該分配的Extent的大小。CREATE TABLE test(a number)STORAGE(INITIAL 100K NEXT 100K MINEXTENTS 2 MAXEXTENTS 100 PCTINCREASE 100); 解釋:初始給test表分配兩個Extent,第一個Extent是100K,因INITIAL=100K第二個Extent是100K,因NEXT=100K如果因表內資料增長,需要分配第三個Extent,因PCTINCREASE是100,則第三個Extent是200K=100K+100K第四個Extent是400K=200K+200K可通過資料字典表DBA_TABLES、ALL_TABLES、USER_TABLES查看參數設定情況,如:select table_name,initial_extent,next_extent,min_extents,max_extents,pct_increase from user_tables;TABLE_NAME INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS PCT_INCREASE---------- -------------- ----------- ----------- ----------- ------------TEST 106496 212992 2 100 100