Oracle資料庫效能

逍遙三人發表於2012-01-01

執行在Unix作業系統上的 Oracle資料庫,可以調整 Unix資料緩衝區的大小、每個程式所能使用的記憶體大小等引數。

   實際上,上述資料庫優化措施之間是相互聯絡的。Oracle 資料庫效能惡化的表現基本上都是使用者響應時間比較長,需要使用者長時間的等待。而效能惡化的原因卻是多種多樣的,有時是多個因素共同造成了效能惡化的結果,這就需要資料庫管理員有比較全面的計算機知識,能夠敏感地察覺到影響資料庫效能的主要原因所在。另外,良好的資料庫管理工具對於優化

效能優化工具

    Oracle資料庫常用的資料庫效能優化工具有:

   1. Oracle資料庫線上資料字典 Oracle線上資料字典能夠反映出Oracle的動態執行情況,對於調整資料庫效能是很有幫助的。

   2. 作業系統工具 例如使用Unix作業系統的Vmstat、 Iostat等命令可以檢視到系統級記憶體和硬碟I/O的使用情況,這些工具能夠幫助管理員弄清楚系統瓶頸出現在什麼地方。

   3. SQL語言跟蹤工具(SQL Trace Facility)

   SQL語言跟蹤工具可以記錄SQL語句的執行情況,管理員可以使用虛擬表來調整例項,並使用SQL語句跟蹤檔案調整應用程式效能。SQL語言跟蹤工具將結果輸出成一個作業系統

    4. Oracle Enterprise Manager(OEM) 這是一個圖形的使用者管理介面,使用者可以使用它方便地進行資料庫管理而不必記住複雜的Oracle資料庫管理的命令。

   5. Explain Plan??SQL語言優化命令 使用這個命令可以幫助程式設計師寫出高效的

   系統效能評估

   資訊系統的型別不同,需要關注的資料庫引數也是不同的。資料庫管理員需要根據自

   1. 線上事務處理資訊系統(OLTP) 這種型別的資訊系統一般需要有大量的Insert、 Update操作,典型的系統包括民航機票發售系統、銀行儲蓄系統等。OLTP系統需要保證資料庫的併發性、可靠性和終端使用者的速度,這類系統使用的Oracle資料庫需主要考慮以下引數:

   資料庫回滾段是否足夠?

   是否需要建立Oracle資料庫索引、聚集、雜湊?

   系統全域性區(SGA)大小是否足夠?

   SQL語句是否高效?

   2. 資料倉儲系統(Data Warehousing) 這種資訊系統的主要任務是從Oracle的海量資料中進行查詢,以得到資料之間的某些規律。資料庫管理員需要為這種型別的Oracle資料

   是否採用B*?索引或者Bitmap索引?

   是否採用並行SQL查詢以提高查詢效率?

   是否採用PL/SQL函式編寫儲存過程?

   有必要的話,需要建立並行資料庫以提高資料庫的查詢效率。

引數的調整

   1. CPU引數

    CPU是伺服器的一項重要資源,伺服器良好的工作狀態表現為在工作高峰時CPU的使用率高於90%。如果空閒時間CPU使用率就在90%以上,說明伺服器缺乏CPU資源;如果工作高峰時CPU使用率仍然很低,則說明伺服器CPU 資源還比較充足。

   使用操作命令可以看到CPU的使用情況,一般Unix作業系統的伺服器,可以使用 sar-u命令檢視CPU的使用率;NT作業系統的伺服器,可以使用NT的效能管理器來檢視CPU的使

   資料庫管理員可以通過檢視v$sysstat資料字典中的 “CPU used by this session ”統計項得知Oracle資料庫使用的CPU時間;檢視“OS User level CPU time”統計項得知作業系統使用者狀態下的CPU時間;檢視“OS System call CPU time” 統計項得知作業系統系統狀態下的CPU時間,作業系統總的CPU時間就是使用者狀態和系統狀態時間之和。如果Oracle資料庫使用的CPU時間佔作業系統總CPU時間的90%以上,就說明伺服器CPU基本上被Oracle資料庫使用著,這是合理的,反之,則說明伺服器CPU被其他程式佔用過多,Oracle資料庫無法

    2. 記憶體引數

   記憶體引數的調整主要是指Oracle資料庫的系統全域性區(SGA)的調整。SGA主要由3部分構成:共享池、資料緩衝區、日誌緩衝區。

   共享池由兩部分構成:共享SQL區和資料字典緩衝區。共享SQL區是存放使用者SQL命令

   結束語

   Oracle資料庫的效能優化調整是一個系統工程,涉及的方面很多。資料庫管理員需要綜合運用上面介紹的規律,認真分析Oracle在執行過程當中出現的各種問題,以保證Oracle資料庫執行的高效率。還需要指出的是,上面給出的語句只是測得Oracle執行過程的某一個時間點的情況,資料庫管理員不能僅僅根據一個點的情況就斷定資料庫執行效能的好壞,只有多執行一些時間點才能對資料庫執行狀況做出一個綜合評估。

   由於單個時間點的監測是很麻煩的,且對於多個時間點的監測更是一項煩瑣的工作,為此,筆者開發了Oracle資料庫效能監測軟體ORATUNE。這個軟體不僅能夠定時從資料庫中讀取各種引數並自動計算出各種比例,而且還能自動根據這些比例的好壞建議資料庫管理員修改

   ORATUNE已經在清華大學、華北電力集團等多個單位得到了應用,對Oracle資料庫的效能優化調整起到了良好的作用。

相關文章