oracle資料庫效能優化 - 降低io
影響到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的三大因素去掉了兩大因素,因此效能上有望達到倍增的效果。
實驗環境:
由於本文所需測試均是從記憶體盤使用方面的優化性測試,因此有一台記憶體較大cpu稍微好一點的機器就足以做相關測試了。
遺留問題:
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資料庫訪問效能優化
最近在做有關查詢資料庫的工作,由於乙個表的資料量過大,導致程式程序卡死情況出現,sql優化迫在眉睫,索引閃亮登場!oracle中查詢走索引的情況 1 對返回的行無任何限定條件,即沒有where子句。2 未對資料表與任何索引主列相對應的行限定條件。例如 在id name time列建立了三列復合索引,...
優化Oracle資料庫效能
優化策略 為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整 資料庫引數調整 網路效能調整 應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發 分析評價oracle資料庫效能主要有資料庫...
Oracle資料庫效能優化
url size medium 為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整 資料庫引數調整 網路效能調整 應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發。分析評價oracle...