Oracle 空閒列表管理機制與pctfree和pctused引數
阿新 • • 發佈:2019-02-04
導讀:
如果你想充分地利用塊,則將PCTUsed 設定地高一點,以便在發生Delete活動後,快速地回到空閒列表中.
本文轉自
http://www.cnblogs.com/SharkXu/archive/2007/11/08/OracleIdleBlock.html
Oracle中有空閒列表的概念.空閒列表中儲存的是可供插入新行的塊資訊
所以新的行資料只會插入到那些存在於空閒列表中的塊.
空閒列表的管理機制與建表時pctfree和pctused引數兩個引數有緊密關係.
當一個塊第一次開闢的時候,當然是在空閒列表中的.
隨著不斷地插入行資料,當使用率達到或者超過 1-PCTFREE%的時候,該塊從空閒列表中移出.
所以這時候新的行資料不可能再存放到該塊中. 那這個剩餘的PCTFREE%部分豈不是浪費了,當然不是了.
隨著UPDATE 活動的增多,某些存在該塊中的行資料的就會變大,變大部分的資料就存放在PCTFREE部分中.
Delete活動,會將行資料從塊中抹去,這時候塊的使用率可能會低於1-pctfree%, 但是該塊還是不會
立即回到空閒列表,也就是該塊這時候不會接受新的行資料. 那什麼時候該塊會重新回到空閒列表中呢?
直到該塊的使用率低於PCTUSED%的時候,才會回到空閒列表中,也就是說這時候可以接受新的行資料了.
所以當你的系統有較多的update活動並且行資料的大小變化較大的時候,應該預留較多的pctfree.
例如一個公文審批系統,一個公文在流轉的過程中,資料在不斷地變大。
對於一個沒有update活動的表,可以將其設定為0.如系統中的組織架構表,更新的可能性幾乎為0。
如果你想充分地利用塊,則將PCTUsed 設定地高一點,以便在發生Delete活動後,快速地回到空閒列表中.
本文轉自
http://www.cnblogs.com/SharkXu/archive/2007/11/08/OracleIdleBlock.html