轉載:ASSM內部儲存研究大揭密
摘自:http://epub.itpub.net/9/7.htm
作者:Piner
一、 ASSM的基本情況
在920以前,表的剩餘空間的管理與分配都是由連線列表freelist來完成的,因為freelist存在序列的問題,因此容易引起往往容易引起段頭的爭用與空間的浪費(其實這一點並不明顯),最主要的還是因為需要DBA 花費大量的精力去管理這些爭用並監控表的空間利用。
自動段空間管理(ASSM),它首次出現在Oracle920裡。有了ASSM,連線列表freelist被點陣圖所取代,它是一個二進位制的陣列,能夠迅速有效地管理儲存擴充套件和剩餘區塊(free block),因此能夠改善分段儲存本質,ASSM表空間上建立的段還有另外一個稱呼叫Bitmap Managed Segments(BMB 段)。
讓我們看看點陣圖freelist是如何實現的。我會從使用區段空間管理自動引數建立tablespace開始:
Create
tablespace demo
datafile '/ora01/oem/demo01.dbf '
size 5m
EXTENT MANAGEMENT LOCAL -- Turn on LMT
SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM;
一旦你定義好了tablespace,那麼表和索引就能夠使用各種方法很容易地被移動到新的tablespace裡,帶有ASSM的本地管理tablespace會略掉任何為PCTUSED、NEXT和FREELISTS所指定的值。
當表格或者索引被分配到這個tablespace以後,用於獨立物件的PCTUSED的值會被忽略,而Oracle9i會使用點陣圖陣列來自動地管理tablespace裡表格和索引的freelist。對於在LMT的tablespace內部建立的表格和索引而言,這個NEXT擴充套件子句是過時的,因為由本地管理的tablespace會管理它們。但是,INITIAL引數仍然是需要的,因為Oracle不可能提前知道初始表格載入的大小。對於ASSM而言,INITIAL最小的值是三個塊。
新的管理機制用點陣圖來跟蹤或管理每個分配到物件的塊,每個塊有多少剩餘空間根據點陣圖的狀態來確定,如>75%,50%-75%,25%-50%和<25%,也就是說點陣圖其實採用了四個狀態位來代替以前的pctused,什麼時候該利用該資料塊則由設定的pctfree來確定。
使用ASSM的一個巨大優勢是,點陣圖freelist肯定能夠減輕緩衝區忙等待(buffer busy wait)的負擔,這個問題在Oracle9i以前的版本里曾是一個嚴重的問題。
在沒有多個freelist的時候,每個Oracle表格和索引在表格的頭部都曾有一個資料塊,用來管理物件所使用的剩餘區塊,併為任何SQL插入宣告所建立的新資料行提供資料塊。當資料緩衝內的資料塊由於被另一個DML事務處理鎖定而無法使用的時候,緩衝區忙等待就會發生。當你需要將多個任務插入到同一個表格裡的時候,這些任務就被強制等待,而同時Oracle會在同時分派剩餘的區塊,一次一個。
有了ASSM之後,Oracle宣稱顯著地提高了DML併發操作的效能,因為(同一個)點陣圖的不同部分可以被同時使用,這樣就消除了尋找剩餘空間的序列化。根據Oracle的測試結果,使用點陣圖freelist會消除所有分段頭部(對資源)的爭奪,還能獲得超快的併發插入操作。
儘管ASSM顯示出了令人激動的特性並能夠簡化Oracle DBA的工作,但是Oracle9i的點陣圖分段管理還是有一些侷限性的:
·
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-82789/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android-內部儲存和外部儲存Android
- Android內部儲存和外部儲存,以及讀取Android讀取RAM,ROM內部儲存和外部儲存卡容量Android
- MongoDB 儲存引擎與內部原理MongoDB儲存引擎
- 數值在Oracle的內部儲存Oracle
- 掛載大容量儲存
- HDU-安卓程式開發之簡單儲存/內部儲存/外部儲存 & 捉蟲安卓
- 資料庫內部儲存結構探索資料庫
- Java HashMap原理及內部儲存結構JavaHashMap
- String內部儲存方式與UnicodeUnicode
- Cassandra的內部資料儲存結構
- SQL學習筆記(ORACLE內部儲存)SQL筆記Oracle
- Aspose.Slides.NET 19.2 解析ppt內容儲存svg 儲存ppt內部圖片IDESVG
- 關於ORACLE組合索引內部儲存淺談Oracle索引
- 行連線的一點內部儲存測試!
- wsl遷移儲存位置(轉載)
- oracle儲存研究方法Oracle
- 結構體內部儲存中的對齊問題結構體
- HACCP原理——記錄的儲存(轉載)
- 《MySQL技術內幕:InnoDB儲存引擎》連載MySql儲存引擎
- 埠複用大揭密
- 淺談儲存一個檔案操作內部發生了什麼
- 【轉載】Vim儲存只讀模式下的修改模式
- Android中關於內部儲存的一些重要函式Android函式
- oracle中dump函式及oracle NUMBER型別內部儲存機制Oracle函式型別
- iscsi 掛載網路儲存及儲存訪問
- 幾種儲存介面協議全面比較(轉載)協議
- C#揭密II(大師們在說些什麼?) (轉)C#
- Oracle 共享儲存掛載Oracle
- 內部專家親自揭秘!滴滴物件儲存系統的演進之路物件
- 利用泛型模擬棧結構實現內部鏈式儲存結構泛型
- 儲存概述_轉摘
- 【usb儲存掛載】android6.0固定usb儲存掛載路徑Android
- 儲存大師新作,三星儲存四大新品面世!
- 深入研究Windows內部原理系列(影片)Windows
- 怎麼樣dump(轉儲)資料庫內部結構(final)資料庫
- Kubernetes 幾種儲存方式效能對比 (轉載)
- 不破壞原加密儲存的儲存解密(轉)加密解密
- Windows拖動選單揭密 (轉)Windows