段FREELISTS和FREELIST-GROUPS引數設定

聽海★藍心夢發表於2009-06-19

資料庫在INSERT,UPDATE操作時都需要請求空閒的資料塊,由於不可能每次操作時都去每個資料塊查詢一下看看有沒有空閒的塊(如果這樣那效率太低了)。為了解決這個問題,ORACLE的在每個段的段頭有一個空閒資料塊指標連結串列的結構,這個就稱為FREELISTS,FREELISTS列表代表連結串列的長度。表面上看像解決了問題,但在高併發對一個表的插入或更新時,一個空閒連結串列往往會出現等待的現象,所以為了提高效能,又增加了多個空閒連結串列的處理,也就是FREELIST-GROUPS,也就說段有多少個空閒連結串列是FREELIST-GROUPS引數決定。
      在ORACLE9.2以前,對於一些高併發的表需要檢查FREELISTS和FREELIST-GROUPS引數是否滿足應用的要求。從ORACLE9.2新增加了ASSM(表空間段自動管理)的新特性,有了ASSM,連結列表FREELISTS被點陣圖結構所取代,所以也根本不需要指定什麼FREELISTS和FREELIST-GROUPS引數了,一個段裡哪些資料塊是空閒的,那些是可以再使用的,在這個點陣圖裡全部可以取到,並且全部是由ORACLE自動管理。
透過測試與實踐,採用自動段管理的表,在併發處理效能上表現非常好,所以基本上現在的表都採用段自動管理了,因此FREELISTS和FREELIST-GROUPS引數也就成為過去。

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

相關文章