ORACLE空間管理實驗3:區管理之大區小區對I/O效能的影響

還不算暈發表於2014-01-27

大小區優缺點,超過一M區有意義嗎?

  表空間管理技術管理的是區,本地管理表空間LMT在每個資料檔案頭部加入點陣圖區域管理的是EXTENT的使用情況.
EXTENT的使用和釋放時ORACLE會在資料檔案頭的點陣圖區域更新記錄。
對於大小區,事實上即使在系統自動分配區大小的管理方式下,8M的區也很普遍,如下:
系統管理區大小由系統自動分配擴充套件的區大小,
在段的前1M空間:區大小8個塊=64K,前16個區是這樣。
在段1M---64M之間:區大小1M,128個塊
在段64M之後,區大小8M。

大小區優點缺點彙總:

小區:優點省空間

    :缺點分配次數可能達多,甚至由此引起資料檔案頭點陣圖區的爭用。

大區:缺點浪費空間、和在分配和回收時多耗用一點點CPU
    :優點:全掃描段時減少I/O的次數--詳解下一個問題
            減少分配的次數。

            掃描段時也會減少段頭的次數--段頭會被快取

大區、大IO,無併發時全表掃描速度更快

小區、小IO,有併發時全表掃描速度更快

大小區對併發的影響?

大區小區對併發沒有太大影響,因為併發最終操作的是資料塊大小--操作塊時會加鎖-buffer pin,可能會產生 buffer busy waits。如塊大,行多,比如 500行,競爭大,併發相對小。而塊小,行少,如100行,競爭少,相對支援的更大併發。
但是大小區對併發也會有一點影響,就是高水位的推進,一般是以一個區為單位推進的。詳見:

大區會增加OLTP的I/O效能嗎?為什麼?

對OLTP沒影響或者說影響很小。

對OLAP可以減少I/O次數,或者讓隨機I/O變為順序I/O。

但是要考慮:

OS、硬體驅動:最大IO大小1M。
區內的空間是連續的。--表碎片 ???
讀一個8M的區,包含8個1M的I/O,很有可能,這8次I/O,是順序IO。
讀8個1M的區,至少8次隨機I/O。
但是系統自動分配時,在64M後也是自動分配8M的區了,使用系統分配區大小即可。
除非表空間中段很多,很多小表大於8M小於百M全表掃描,此時可以考慮將表空間設定為統一區大小。
這裡要考慮底層儲存的AU。如8M 的AU、8M的區,這樣能保證每個AU的8M在同一個磁碟,如儲存最大支援4M,這時可以區大小4M或不管,ASM層AU也是4M。--好像不太實用啊。
這一段是OLAP時要考慮的。

   


相關文章