隨著網路應用和電子商務的不斷發展,各個站點的訪問量越來越大,如何使有限的計算機系統資源為更多的使用者服務?如何保證使用者的響應速度和服務質量?這些問題都屬於伺服器效能優化的範疇。作為較成功的資料庫廠商,oracle公司資料庫的效能優化是如何進行的
優化策略
為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整、資料庫引數調整、網路效能調整、應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發
分析評價oracle資料庫效能主要有資料庫吞吐量、資料庫使用者響應時間兩項指標。資料庫使用者響應時間又可以分為系統服務時間和使用者等待時間兩項,即:
資料庫使用者響應時間=系統服務時間+使用者等待時間
因此,獲得滿意的使用者響應時間有兩個途徑:一是減少系統服務時間,即提高資料庫的吞吐量;二是減少使用者等待時間,即減少使用者訪問同一資料庫資源的衝突率。
資料庫效能優化包括如下幾個部分:
1. 調整資料結構的設計 這一部分在開發資訊系統之前完成,程式設計師需要考慮是否使用oracle資料庫的分割槽功能,對於經常訪問的資料庫表是否需要建立索引等。
2. 調整應用程式結構設計 這一部分也是在開發資訊系統之前完成的。程式設計師在這一步需要考慮應用程式使用什麼樣的體系結構,是使用傳統的client/server兩層體系結構,還是使用browser/web/database的三層體系結構。不同的應用程式體系結構要求的資料庫資源
3. 調整資料庫sql語句 應用程式的執行最終將歸結為資料庫中的sql語句執行,因此sql語句的執行效率最終決定了oracle資料庫的效能。 oracle公司推薦使用oracle語句優化器(oracle optimizer)和行鎖管理器(row-level manager)來調整優化sql語句。
4. 調整伺服器記憶體分配 記憶體分配是在資訊系統執行過程中優化配置的。資料庫管理員根據資料庫的執行狀況不僅可以調整資料庫系統全域性區(sga區)的資料緩衝區、日誌緩衝區和共享池的大小,而且還可以調整程式全域性區(pga區)的大小。
5. 調整硬碟i/o 這一步是在資訊系統開發之前完成的。資料庫管理員可以將組成同乙個表空間的資料檔案放在不同的硬碟上,做到硬碟之間i/o 負載均衡。
6. 調整作業系統引數 例如:執行在unix作業系統上的 oracle資料庫,可以調整 unix資料緩衝區的大小、每個程序所能使用的記憶體大小等引數。
實際上,上述資料庫優化措施之間是相互聯絡的。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語言優化命令 使用這個命令可以幫助程式設計師寫出高效的
系統效能評估
資訊系統的型別不同,需要關注的資料庫引數也是不同的。資料庫管理員需要根據自
資料庫回滾段是否足夠?
是否需要建立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資料庫的效能優化調整起到了良好的作用。
優化Oracle資料庫效能
優化策略 為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整 資料庫引數調整 網路效能調整 應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發 分析評價oracle資料庫效能主要有資料庫...
Oracle資料庫效能優化
url size medium 為了保證oracle資料庫執行在最佳的效能狀態下,在資訊系統開發之前就應該考慮資料庫的優化策略。優化策略一般包括伺服器作業系統引數調整 資料庫引數調整 網路效能調整 應用程式sql語句分析及設計等幾個方面,其中應用程式的分析與設計是在資訊系統開發。分析評價oracle...
oracle資料庫的效能優化
oracle資料庫的效能調整 強力推薦,本文詳細介紹了什麼情況下需要調整系統引數中的哪個引數,其中查詢語句都經過本人測試,有一句不明白的,希望 高手給予修改辦法。oracle是乙個高效能資料庫軟體。使用者可以通過引數的調整,達到效能的優化。效能優化主要分為兩部分 一是資料庫管理員通過對系統引數的調整...