oracle數(shù)據(jù)庫(kù)性能優(yōu)化-降低IO
oracle數(shù)據(jù)庫(kù)性能優(yōu)化-降低IO
影響到oracle性能的因素主要可以從硬件和軟件兩個(gè)方面劃分,本文通過(guò)對(duì)oracle數(shù)據(jù)庫(kù)架構(gòu)的分析,提出從硬件方面OLTP系統(tǒng)優(yōu)化oracle數(shù)據(jù)庫(kù)性能的方法,不足之處歡迎拍磚。
oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)架構(gòu):
oracle數(shù)據(jù)庫(kù)物理文件增長(zhǎng)情況:
Oracle archived REDO log files增長(zhǎng)快,說(shuō)明redo log寫(xiě)入很頻繁。
從實(shí)際大數(shù)據(jù)量和高性能OLTP應(yīng)用系統(tǒng)性能測(cè)試發(fā)現(xiàn),磁陣IO是限制系統(tǒng)性能的瓶頸,因此降低IO是oracle數(shù)據(jù)庫(kù)優(yōu)化的關(guān)鍵,結(jié)合oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)架構(gòu)圖、數(shù)據(jù)庫(kù)物理文件增長(zhǎng)情況和實(shí)際測(cè)試發(fā)現(xiàn),給磁陣IO帶來(lái)很大負(fù)荷的是redo log文件、數(shù)據(jù)文件、索引文件的讀寫(xiě)三個(gè)方面,并且當(dāng)數(shù)據(jù)量、性能和持續(xù)壓力時(shí)間都達(dá)到一定的量時(shí),這三者產(chǎn)生的IO負(fù)荷相當(dāng),因此降低磁盤(pán)IO的最終目標(biāo)也就是降低這三類(lèi)文件的IO,通過(guò)將oracle的redo log文件、數(shù)據(jù)文件、索引文件都建立到內(nèi)存盤(pán)上的實(shí)際測(cè)試結(jié)果表明,采用這種幾乎零IO的模式很大程度的提高了oracle的性能,
基于以上分析,可以對(duì)oracle數(shù)據(jù)庫(kù)的IO做以下優(yōu)化:
1 固態(tài)硬盤(pán)存儲(chǔ)redo log,提高redo log的寫(xiě)入速度,
從實(shí)際運(yùn)用的角度看,由于內(nèi)存盤(pán)的易失性,把redo log文件建立在內(nèi)存盤(pán)上是不安全的,再考察redo log文件具有大小穩(wěn)定,一般在2到3個(gè)G之間的特性,因此把redo log文件建立在固態(tài)硬盤(pán)上是個(gè)不錯(cuò)的選擇
2 由于內(nèi)存足夠大,因此將臨時(shí)表空間建立在內(nèi)存盤(pán)上,對(duì)于統(tǒng)計(jì)、大數(shù)據(jù)量查詢、大數(shù)據(jù)量
sql運(yùn)算(比如:group by、sum等)的操作,
需要大量臨時(shí)表空間存儲(chǔ)臨時(shí)數(shù)據(jù),這些臨時(shí)數(shù)據(jù)就直接存儲(chǔ)到內(nèi)存上了,消除了oracle的大讀取和大運(yùn)算產(chǎn)生的臨時(shí)IO
3 由于索引具有可以根據(jù)數(shù)據(jù)文件重建,不怕丟失的特性,
把索引文件建在臨時(shí)文件系統(tǒng)上,oracle每次啟動(dòng)時(shí)重建索引,這樣平時(shí)的讀寫(xiě)操作就不會(huì)產(chǎn)生索引IO,索引的更新和讀取都在內(nèi)存上進(jìn)行,
系統(tǒng)由于各種原因出現(xiàn)重啟時(shí),僅在重啟時(shí)重建一次索引
本文觀點(diǎn)基于目前系統(tǒng)內(nèi)存都非常大(一般都是幾十G甚至以上)的情況下所做的優(yōu)化,
基于以上優(yōu)化,把影響oracle IO的三大因素去掉了兩大因素,因此性能上有望達(dá)到倍增的效果。
影響到oracle性能的因素主要可以從硬件和軟件兩個(gè)方面劃分,本文通過(guò)對(duì)oracle數(shù)據(jù)庫(kù)架構(gòu)的分析,提出從硬件方面OLTP系統(tǒng)優(yōu)化oracle數(shù)據(jù)庫(kù)性能的方法,不足之處歡迎拍磚。
oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)架構(gòu):
oracle數(shù)據(jù)庫(kù)物理文件增長(zhǎng)情況:
Oracle archived REDO log files增長(zhǎng)快,說(shuō)明redo log寫(xiě)入很頻繁。
從實(shí)際大數(shù)據(jù)量和高性能OLTP應(yīng)用系統(tǒng)性能測(cè)試發(fā)現(xiàn),磁陣IO是限制系統(tǒng)性能的瓶頸,因此降低IO是oracle數(shù)據(jù)庫(kù)優(yōu)化的關(guān)鍵,結(jié)合oracle數(shù)據(jù)庫(kù)物理存儲(chǔ)架構(gòu)圖、數(shù)據(jù)庫(kù)物理文件增長(zhǎng)情況和實(shí)際測(cè)試發(fā)現(xiàn),給磁陣IO帶來(lái)很大負(fù)荷的是redo log文件、數(shù)據(jù)文件、索引文件的讀寫(xiě)三個(gè)方面,并且當(dāng)數(shù)據(jù)量、性能和持續(xù)壓力時(shí)間都達(dá)到一定的量時(shí),這三者產(chǎn)生的IO負(fù)荷相當(dāng),因此降低磁盤(pán)IO的最終目標(biāo)也就是降低這三類(lèi)文件的IO,通過(guò)將oracle的redo log文件、數(shù)據(jù)文件、索引文件都建立到內(nèi)存盤(pán)上的實(shí)際測(cè)試結(jié)果表明,采用這種幾乎零IO的模式很大程度的提高了oracle的性能,
基于以上分析,可以對(duì)oracle數(shù)據(jù)庫(kù)的IO做以下優(yōu)化:
1 固態(tài)硬盤(pán)存儲(chǔ)redo log,提高redo log的寫(xiě)入速度,
從實(shí)際運(yùn)用的角度看,由于內(nèi)存盤(pán)的易失性,把redo log文件建立在內(nèi)存盤(pán)上是不安全的,再考察redo log文件具有大小穩(wěn)定,一般在2到3個(gè)G之間的特性,因此把redo log文件建立在固態(tài)硬盤(pán)上是個(gè)不錯(cuò)的選擇
2 由于內(nèi)存足夠大,因此將臨時(shí)表空間建立在內(nèi)存盤(pán)上,對(duì)于統(tǒng)計(jì)、大數(shù)據(jù)量查詢、大數(shù)據(jù)量
sql運(yùn)算(比如:group by、sum等)的操作,
需要大量臨時(shí)表空間存儲(chǔ)臨時(shí)數(shù)據(jù),這些臨時(shí)數(shù)據(jù)就直接存儲(chǔ)到內(nèi)存上了,消除了oracle的大讀取和大運(yùn)算產(chǎn)生的臨時(shí)IO
3 由于索引具有可以根據(jù)數(shù)據(jù)文件重建,不怕丟失的特性,
把索引文件建在臨時(shí)文件系統(tǒng)上,oracle每次啟動(dòng)時(shí)重建索引,這樣平時(shí)的讀寫(xiě)操作就不會(huì)產(chǎn)生索引IO,索引的更新和讀取都在內(nèi)存上進(jìn)行,
系統(tǒng)由于各種原因出現(xiàn)重啟時(shí),僅在重啟時(shí)重建一次索引
本文觀點(diǎn)基于目前系統(tǒng)內(nèi)存都非常大(一般都是幾十G甚至以上)的情況下所做的優(yōu)化,
基于以上優(yōu)化,把影響oracle IO的三大因素去掉了兩大因素,因此性能上有望達(dá)到倍增的效果。
時(shí)間:2012-08-24 責(zé)任編輯:admin
相關(guān)文章
無(wú)相關(guān)信息