oracle資料庫效能優化 降低IO

2021-07-22 02:54:07 字數 1778 閱讀 4309

影響到oracle效能的因素主要可以從硬體和軟體兩個方面劃分,本文通過對oracle資料庫架構的分析,

提出從硬體方面oltp系統優化oracle資料庫效能的方法,不足之處歡迎拍磚。

oracle資料庫物理儲存架構:

oracle資料庫物理檔案增長情況:

oracle archived redo log files增長快,說明redo log寫入很頻繁。

從實際大資料量和高效能oltp應用系統效能測試發現,磁陣io是限制系統效能的瓶頸,因此降低io是oracle資料庫優化的關鍵,

結合oracle資料庫物理儲存架構圖、資料庫物理檔案增長情況和實際測試發現,給磁陣io帶來很大負荷的是redo log檔案、資料檔案、索引檔案的讀寫三個方面,

並且當資料量、效能和持續壓力時間都達到一定的量時,這三者產生的io負荷相當,因此降低磁碟io的最終目標也就是降低這三類檔案的io,

通過將oracle的redo log檔案、資料檔案、索引檔案都建立到記憶體盤上的實際測試結果表明,採用這種幾乎零io的模式很大程度的提高了oracle的效能,

基於以上分析,可以對oracle資料庫的io做以下優化:

1 固態硬碟儲存redo log,提高redo log的寫入速度,

從實際運用的角度看,由於記憶體盤的易失性,把redo log檔案建立在內存檔上是不安全的,再考察redo log檔案具有大小穩定,一般在2到3個g之間的特性,因此把redo log檔案建立在固態硬碟上是個不錯的選擇

2 由於記憶體足夠大,因此將臨時表空間建立在內存檔上,對於統計、大資料量查詢、大資料量sql運算(比如:group by、sum等)的操作,

需要大量臨時表空間儲存臨時資料,這些臨時資料就直接儲存到記憶體上了,消除了oracle的大讀取和大運算產生的臨時io

3 由於索引具有可以根據資料檔案重建,不怕丟失的特性,

把索引檔案建在臨時檔案系統上,oracle每次啟動時重建索引,這樣平時的讀寫操作就不會產生索引io,索引的更新和讀取都在記憶體上進行,

系統由於各種原因出現重啟時,僅在重啟時重建一次索引

基於以上優化,把影響oracle io的三大因素去掉了兩大因素,因此效能上有望達到倍增的效果。

實驗環境:

遺留問題:

1 每次重啟資料庫時重建oracle索引的代價是多少,應用能否接受?

2 redo log檔案是否還有別的更加快速的訪問辦法?更快的方法安全性怎麼樣?

名詞解釋:

我沒有查到關於unix作業系統的臨時檔案系統的說明,但是unix系統通常都支援記憶體盤(ramdisk),可以用來代替tmpfs。

固態硬碟  :固態硬碟(solid state disk、ide flash disk)用固態電子儲存晶元陣列而製成的硬碟,由控制單元和儲存單元(flash晶元)組成。

傳統硬碟  :硬碟(港台稱之為硬碟,英文名:hard disc drive 簡稱hdd 全名 溫徹斯特式硬碟)是電腦主要的儲存媒介之一,由乙個或者多個鋁製或者玻璃制的碟片組成。這些碟片外覆蓋有鐵磁性材料。

redo log  :redo/undo log檔案,重做/撤銷日誌,oracle archived redo log files是對red/undo log的備份

data files:資料檔案,每乙個oracle資料庫有乙個或多個物理的資料檔案(data file)。乙個資料庫的資料檔案包含全部資料庫資料

優化Oracle資料庫效能

優化策略 為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整 資料庫引數調整 網路效能調整 應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發 分析評價oracle資料庫效能主要有資料庫...

Oracle資料庫效能優化

url size medium 為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整 資料庫引數調整 網路效能調整 應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發。分析評價oracle...

mybatis效能優化之降低資料庫連線

做效能優化的最重要的功能就是降低資料庫的互動。非常多程式猿一般在開發的時候僅僅考慮簡單的實現功能,無論業務簡單複雜,僅僅要實現即可。mybatis有個重要的功能就是考慮在聯合查詢時技巧 jdbctype varchar select t.id,t.name,s.t s id,s.sid,s.snam...