Block中的ITL槽能擴充套件到多少與pctfree有關係麼 ?

tolywang發表於2010-08-18
Oracle 10.2.0.4  
16K  block size  

我們一般在定義表的時候可以看到指令碼中有兩個引數,initrans  1   maxtrans  255 ,  就是定義表的資料塊頭部
ITL槽的個數, initrans  表示初始的ITL個數, 而maxtrans 表示最大的ITL數量 。 但是ITL資訊也是需要佔用
空間的, 假設pctfree 為 10% 。   

資料塊頭部的ITL槽的大小分配剛開始是分配了多大 (按照16K的block size大小來計算的話, ) ?  後期ITL槽
擴充套件的過程中是使用block中 90% 空間中的剩餘部分 ?  還是說和資料update一樣, 也可以使用準備用於更新
過程中行長度變化的用於擴充套件的10% (pctfree)  ?    簡單一句話, ITL 槽的擴充套件和data的插入或update 導致
的block空間使用是一樣的,  還是說ITL槽的總大小是限制的 (當然在255個以內)   ??

或者說ITL槽是否只在資料塊頭部 ? 如果是,那麼一開始, Oracle就應該為ITL預留足夠的空間,否則ITL槽設定
的 255 的maxtrans 應該是沒有意義的  ?  







CREATE TABLE DFMS.EDIBTO850_MAIN
(
  CONTROLNUMBER     VARCHAR2(40 BYTE)    NOT NULL,
  ISA06                        VARCHAR2(50 BYTE),
  CREATE_TIME            DATE          DEFAULT sysdate
)
TABLESPACE LOG_DATA
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          10M
            NEXT             20M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING
NOCOMPRESS
NOCACHE   
NOPARALLEL
MONITORING;

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

相關文章