對Oracle資料庫中Stroage子句的一些理解

lilong發表於2004-10-25
在工作中經常能遇到因Stroage引數設定不當引起的問題,以下是我對Storage子句的一些淺顯的理解。 [@more@] INITIAL 物件建立時分配的初始區的大小
NEXT 與 PCTINCREASE 一起使用,用於計算後來分配的區的大小
PCTINCREASE 下一次分配的區要增加的百分比
MINEXTENTS 給物件(當它建立時)分配的區的最小數量
MAXEXTENTS 可以分配給物件的區的最大數量
一旦建立了某個物件,它的資料儲存引數INITIAL 和MINEXTENTS 不能修改,除非刪除和重新建立該物件。對於NEXT 和 PCTINCREASE 的任何更改都隻影響後來分配的那些區。
如果一個表空間的PCTINCREASE資料儲存引數的值大於零,則後臺例項程式SMON將擔當間接聚集該表空間的可用區的任務,另一種方法:ALTER TABLESPACE …… COALESCE;
通常使用的技巧是將PCTINCREASE 設為較小的非零數(通常設為1)來引起SMON 執行後臺聚集。這表面上看起來似乎是一件好事,但這樣做實際上存在三個問題。首先, PCTINCREASE 設為非零值將導致空間碎塊的增加,因此,事實上它產生了恰好是您想透過聚集解決的問題。由於PCTINCREASE 引起下一個區的大小成指數增加,即使是一個最小的PCTINCREASE 值(如1),隨時間的推移合計起來也會對後來的區分配增加很大的尺寸。其次,它引起SMON 的不必要的效能開銷。再其次, SMON 本身在聚集可用空間方面效率並不高。透過將PCTINCREASE 設為零並定期使用ALTER TABLESPACE …… COALESCE命令直接聚集可用空間,可更有效管理可用空間碎片。
透過使用匯出引數COMPRESS = Y,可以重新建立將表和索引重新建立到一個單獨的、大的區中。
回滾段和臨時段的PCTINCREASE必須為0。

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

相關文章