1. 程式人生 > >建立表時引數PCTFREE和PCTUSED

建立表時引數PCTFREE和PCTUSED

用CREATE 命令的PCTUSED、PCTFREE、INITTRANS、MAXTRANS、FREELIST GROUPS 和FREELISTS引數來控制表、索引或簇的資料塊中的空間使用。

可使用PCTFREE和PCTUSED引數控制資料塊何時進入或離開表、索引或簇的可用清單。使用PCTFREE引數設定最大的閾值,以控制對將來的行的更新操作保留多少資料塊空間。當某個資料塊使PCTFREE裝滿時,ORACLE從相應段的可用清單中刪除該塊。如果你預計只有很少的更新操作會增加行的大小,則可將PCTFREE設定為較低的值(如5或者10),使得ORACLE填滿每個塊的更多的空間。但是,如果你預計更新操作將會經常增加行的大小,則將PCTFREE設定為較高的值(如20或30)
,使得ORACLE為已有行的更新操作保留更多的塊空間;否則,將出現行鏈。

可使用PCTUSED引數設定最小塊的閾值來控制一個數據塊應在何時放回到相應段的可用清單中。例如,所有段的預設PCTUSED設定為40%,因此,當事務處理刪除資料塊中的行時,如果它只有39%是裝滿的,ORACLE將該資料塊放回到相應段的可用清單中。如果你預計很少有刪除操作,則可設定PCTUSED為較高的值(如60),當偶然的刪除操作發生時,使資料塊彈出可用清單。但是,如果你預計將PCTUSED 設定為較低的值(如40),使ORACLE不常產生塊在表的可用空間中移進或移出的開銷。

可使用INITRANS和MAXTRANS引數優化ORACLE如何在表、資料簇或索引的資料塊中分配事務處理項。INITRANS引數確定為事務處理項預分配多少資料塊頭部的空間。當您預計有許多併發事務處理要涉及某個塊時,可為相關的事務處理項預分配更多的空間,以避免動態分配該空間的開銷。MAXTRANS引數限制並行使用某個資料塊的事務處理的數量。當您預計有許多事務處理將並行訪問某個小表時,則當建立表時,應設定該表的事務處理項預分配更多的塊空間,較高的MAXTRANS 引數值允許許多事務處理並行訪問該表INITRANS和MAXTRANS 引數的設定可能相應低一些(如分別為2和5)。使用這樣的設定,很少為事務處理項保留窨,使該表資料塊的更多空間用於資料。

可使用STORAGE子句的FREELIST GROUPS 引數控制段的可用清單組的資料量。使用FREELISTS 引數設定每組中可用清單的數量。