楊正校,楊 陽(yáng)
(1.健雄職業(yè)技術(shù)學(xué)院 軟件與服務(wù)外包學(xué)院,江蘇 太倉(cāng) 215411;2.南通大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,江蘇 南通 226019)
基于企業(yè)環(huán)境的ORACLE數(shù)據(jù)庫(kù)性能優(yōu)化
楊正校1,楊 陽(yáng)2
(1.健雄職業(yè)技術(shù)學(xué)院 軟件與服務(wù)外包學(xué)院,江蘇 太倉(cāng) 215411;2.南通大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,江蘇 南通 226019)
以企業(yè)環(huán)境ORACLE數(shù)據(jù)庫(kù)性能優(yōu)化為例,通過實(shí)際生產(chǎn)環(huán)境中的調(diào)優(yōu)案例,分析闡述ORACLE數(shù)據(jù)庫(kù)性能優(yōu)化在企業(yè)資源規(guī)劃(ERP)和生產(chǎn)中的重要地位和作用.
企業(yè)環(huán)境;ORACLE;數(shù)據(jù)庫(kù);性能優(yōu)化
Abstract:Based on the enterprise environment ORACLE database performance optimization for example through the actual production environment in tuning,a case study is done on the ORACLE database performance optimization in ERP(enterprise resource planning)and the production of the important status and function.
Key words:enterprise environment;ORACLE;database;performance optimizati
越來越多的企業(yè)將ORALCE數(shù)據(jù)庫(kù)作為首選,構(gòu)建基于ORALCE數(shù)據(jù)庫(kù)的企業(yè)信息化系統(tǒng)環(huán)境.訪問數(shù)據(jù)庫(kù)的頻度在隨生產(chǎn)管理規(guī)模、客戶群體擴(kuò)大、生產(chǎn)控制和管理的增加的同時(shí),ORACLE數(shù)據(jù)庫(kù)在運(yùn)行過程中會(huì)產(chǎn)生大量數(shù)據(jù),消耗系統(tǒng)資源,增加系統(tǒng)開銷,輸入/輸出緩慢,影響系統(tǒng)平穩(wěn)運(yùn)行和正常生產(chǎn),因而迫切需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化.本文將以企業(yè)ORACLE數(shù)據(jù)庫(kù)性能優(yōu)化為例,通過實(shí)際生產(chǎn)環(huán)境中的調(diào)優(yōu)案例,闡述性能優(yōu)化在企業(yè)資源規(guī)劃(ERP)和企業(yè)管理中的重要作用.
影響數(shù)據(jù)庫(kù)的性能主要有系統(tǒng)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)等方面因素.系統(tǒng)方面的主要問題包括CPU時(shí)間、內(nèi)存使用、磁盤I/O等.網(wǎng)絡(luò)方面主要涉及網(wǎng)絡(luò)帶寬的占用等.而從ORACLE數(shù)據(jù)庫(kù)的角度分析,影響ORACLE數(shù)據(jù)庫(kù)的性能因素主要有如下幾個(gè)方面:
1)數(shù)據(jù)庫(kù)的配置參數(shù).通過對(duì)影響系統(tǒng)全局區(qū)域SGA大小的幾個(gè)參數(shù)監(jiān)控分析,有效提高數(shù)據(jù)庫(kù)系統(tǒng)對(duì)內(nèi)存的利用率,同時(shí)還應(yīng)兼顧系統(tǒng)平臺(tái)資源(如:操作系統(tǒng)、后臺(tái)用戶進(jìn)程)對(duì)內(nèi)存的需求.另外,還有一些其他參數(shù)(回滾段、排序等)也需根據(jù)實(shí)際應(yīng)用合理配置.
2)數(shù)據(jù)庫(kù)物理文件的合理分布及邏輯對(duì)象(表空間、表、索引)的合理分布,將提高數(shù)據(jù)庫(kù)的讀寫速度.數(shù)據(jù)庫(kù)運(yùn)行與應(yīng)用中存在大量的I/O操作,如何減少數(shù)據(jù)庫(kù)I/O訪問量、提高I/O讀寫速度對(duì)提高數(shù)據(jù)庫(kù)性能非常關(guān)鍵,可以通過對(duì)系統(tǒng)I/O的監(jiān)控、對(duì)應(yīng)用訪問的分析,合理地將表、索引等放在不同的表空間,將數(shù)據(jù)庫(kù)物理文件分布在不同的磁盤上等來提高數(shù)據(jù)庫(kù)訪問速度.
3)用戶進(jìn)程如何合理利用數(shù)據(jù)庫(kù)的資源.包括應(yīng)用程序如何用正確的方式編寫SQL語句、如何有效使用索引、如何合理地將進(jìn)程分布在服務(wù)器或客戶端上,從而提高對(duì)數(shù)據(jù)庫(kù)SGA內(nèi)存區(qū)的命中率、減少I/O訪問、減少對(duì)網(wǎng)絡(luò)帶寬占用等,在client/server模式下尤其重要.
在實(shí)際的企業(yè)生產(chǎn)管理應(yīng)用環(huán)境中,根據(jù)數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用類型的不同,性能優(yōu)化的目標(biāo)也隨之不同.在高容量的在線事務(wù)處理系統(tǒng)(OLTP)環(huán)境中,數(shù)據(jù)是由一個(gè)primary索引得到的,重新排序表格的行就可以令連續(xù)塊的順序和它們的primary索引一樣,這樣就可以在索引驅(qū)動(dòng)的表格查詢中,減少物理I/O并且改善響應(yīng)時(shí)間.通過OLTP,在數(shù)據(jù)發(fā)生變更時(shí)將它們記錄下來,并及時(shí)更新到數(shù)據(jù)庫(kù)中以提高事務(wù)處理效率并保證其正確性.在企業(yè)環(huán)境中主要有四種系統(tǒng):市場(chǎng)營(yíng)銷、生產(chǎn)制造、財(cái)務(wù)會(huì)計(jì)、人力資源.在這些系統(tǒng)環(huán)境中將吞吐量定義為性能指標(biāo).
決策支持系統(tǒng)(DSS)是管理信息系統(tǒng)向更高一級(jí)(決策支持)發(fā)展而產(chǎn)生的先進(jìn)系統(tǒng),為管理者或決策者提供分析問題、建立模型、模擬決策過程、提供決策方案的系統(tǒng)環(huán)境,通過調(diào)用各種信息資源和分析工具幫助決策者提高決策水平和質(zhì)量.在這樣的系統(tǒng)環(huán)境中響應(yīng)時(shí)間是重要的系統(tǒng)性能指標(biāo).
在企業(yè)環(huán)境中部署ORACLE將直接面對(duì)性能制約問題,數(shù)據(jù)庫(kù)設(shè)計(jì)者以及數(shù)據(jù)庫(kù)管理員應(yīng)該事先了解本地企業(yè)實(shí)際環(huán)境的真實(shí)情況,在響應(yīng)時(shí)間和吞吐量之間進(jìn)行折衷選擇,優(yōu)化時(shí)間分配比例,提高企業(yè)有用時(shí)間的最大利用率,從而有針對(duì)性地提高ORACLE系統(tǒng)效能.
CPU、內(nèi)存、I/O容量以及網(wǎng)絡(luò)帶寬等都是減少時(shí)間的關(guān)鍵因素.性能優(yōu)劣主要取決于以下因素:①可用資源的數(shù)量;②需要該資源的客戶數(shù)目;③客戶等待資源所消耗的時(shí)間;④客戶保持資源的時(shí)間長(zhǎng)短.
當(dāng)請(qǐng)求單元增加,服務(wù)時(shí)間也隨之增加.為此可以選擇通過限制請(qǐng)求的速率,從而維護(hù)可接受響應(yīng)時(shí)間,還可通過增加資源數(shù)目,例如擴(kuò)充內(nèi)存容量和提高網(wǎng)絡(luò)帶寬來緩解矛盾.
ORACLE在生產(chǎn)制造的企業(yè)應(yīng)用環(huán)境中,木桶效應(yīng)尤為明顯,系統(tǒng)其性能優(yōu)劣取決于底層可用資源數(shù)量的高低,內(nèi)存分配不合理、I/O優(yōu)化不合理等瓶頸問題將制約ORACLE工作效能.ORACLE的監(jiān)控,實(shí)時(shí)調(diào)整內(nèi)存存儲(chǔ),減少I/O接口沖突,將ORACLE與其他設(shè)備進(jìn)行無縫連接,成為系統(tǒng)優(yōu)化工作的重點(diǎn).
①調(diào)整單元的消費(fèi)量:使事務(wù)在執(zhí)行時(shí)占用更少的資源,或減少服務(wù)時(shí)間;②調(diào)整功能請(qǐng)求,通過重新規(guī)劃或重新分配工作;③調(diào)整容量.增加或重新分配資源;④調(diào)整配置.修改配置文件,調(diào)整配置參數(shù)或者文件以達(dá)到性能預(yù)期.
根據(jù)企業(yè)應(yīng)用系統(tǒng)的類型,如OLTP或DSS來規(guī)劃ORACLE系統(tǒng)的優(yōu)化方法,是性能優(yōu)化的關(guān)鍵.圖1為數(shù)據(jù)庫(kù)生命周期內(nèi)不同階段的優(yōu)化代價(jià)圖.
由圖1可知,在數(shù)據(jù)庫(kù)生命周期中,從設(shè)計(jì)階段就開始進(jìn)行優(yōu)化設(shè)計(jì),所付成本比較小,而到系統(tǒng)實(shí)施階段,系統(tǒng)優(yōu)化成本將更高,進(jìn)行優(yōu)化的最有效階段是設(shè)計(jì)階段,最有效的優(yōu)化方法是proactive方法,企業(yè)能以最低的代價(jià)獲得最大的效益.圖2是基于ORACLE應(yīng)用系統(tǒng)優(yōu)化的流程圖,分為10個(gè)步驟.按照投資回報(bào)減少的順序給出優(yōu)化過程步驟,對(duì)性能影響越大就越靠前.
圖1 數(shù)據(jù)庫(kù)生命周期內(nèi)不同階段的優(yōu)化代價(jià)圖
圖2 基于ORACLE應(yīng)用系統(tǒng)優(yōu)化的流程圖
案例描述:某個(gè)大型企業(yè)的生產(chǎn)管理系統(tǒng),用戶報(bào)告系統(tǒng)幾乎崩潰,表現(xiàn)為用戶請(qǐng)求得不到及時(shí)響應(yīng),管理員初步檢查發(fā)現(xiàn)系統(tǒng)存在累計(jì)大量用戶進(jìn)程,同時(shí)新進(jìn)程不斷嘗試建立連接,導(dǎo)致系統(tǒng)連接數(shù)很快用盡.最后ORACLE處于掛起狀態(tài),系統(tǒng)性能降低,無法進(jìn)行正常的服務(wù)響應(yīng).操作系統(tǒng):Solaris 8.數(shù)據(jù)庫(kù)版本:ORACLE 9.2.0.3
alert文件中還記錄了如下警告信息,此信息說明系統(tǒng)內(nèi)核參數(shù)設(shè)置不合理或者和當(dāng)前SGA不匹配.
這個(gè)信息說明最大共享內(nèi)存段設(shè)置為4 GB.
ORACLE數(shù)據(jù)庫(kù)的內(nèi)存分為SGA(shared globe area,共享全局區(qū)域)和PGA(program globe area,程序全局區(qū)域)兩部分.PGA由數(shù)據(jù)庫(kù)自身管理,管理員只需監(jiān)控保證PGA沒有溢出,SGA的大小對(duì)系統(tǒng)性能的影響極大.上述信息可見當(dāng)前SGA接近7 GB,超過了4 GB,ORACLE將分配多個(gè)共享內(nèi)存段.性能下降的原因是由于SGA設(shè)置過大,導(dǎo)致ORACLE運(yùn)行時(shí)產(chǎn)生大量交換,大量Swap交換進(jìn)而引發(fā)磁盤I/O問題.大量交換導(dǎo)致ORACLE數(shù)據(jù)庫(kù)性能急劇下降,進(jìn)而導(dǎo)致部門用戶請(qǐng)求得不到快速回應(yīng)、堵塞、累積,直至數(shù)據(jù)庫(kù)失去響應(yīng).
在ORACLE 8i之前只支持靜態(tài)SGA管理,ORACLE 9i后支持動(dòng)態(tài)的SGA管理.允許不重新啟動(dòng)數(shù)據(jù)庫(kù)而使得SGA的修改生效.
此后發(fā)現(xiàn),在系統(tǒng)運(yùn)行期間,數(shù)據(jù)庫(kù)交換明顯減少,ORACLE恢復(fù)正常運(yùn)行,用戶請(qǐng)求得到快速響應(yīng),達(dá)到了ORACLE性能優(yōu)化目標(biāo).
ORACLE是使用最廣泛的企業(yè)級(jí)數(shù)據(jù)庫(kù)之一,使用ORACLE的應(yīng)用系統(tǒng)規(guī)模也比較大,需要處理的連接數(shù)和事務(wù)比較多,經(jīng)常性地調(diào)整以優(yōu)化應(yīng)用系統(tǒng)的性能,防止系統(tǒng)出現(xiàn)瓶頸,是企業(yè)環(huán)境部署和運(yùn)行維護(hù)過程中極其復(fù)雜的一項(xiàng)工作.本文以企業(yè)環(huán)境ORACLE數(shù)據(jù)庫(kù)性能優(yōu)化為例,通過實(shí)際生產(chǎn)環(huán)境中的調(diào)優(yōu)案例,分析闡述ORACLE數(shù)據(jù)庫(kù)性能優(yōu)化在企業(yè)ERP(企業(yè)資源規(guī)劃)和生產(chǎn)中的重要地位和作用.系統(tǒng)調(diào)優(yōu)應(yīng)以規(guī)劃設(shè)計(jì)一個(gè)安全、穩(wěn)定、優(yōu)化的系統(tǒng)運(yùn)行環(huán)境為基礎(chǔ),從ORACLE規(guī)劃和建設(shè)進(jìn)行系統(tǒng)優(yōu)化策略和方案設(shè)計(jì),是保障系統(tǒng)運(yùn)行的基礎(chǔ).在企業(yè)實(shí)際生產(chǎn)環(huán)境中遇到類似上述問題時(shí),應(yīng)該快速判斷、精確定位、及時(shí)解決,盡可能地減少因?yàn)镺RACLE性能的低下對(duì)企業(yè)生產(chǎn)業(yè)務(wù)、管理等產(chǎn)生的影響.
[1]蓋國(guó)強(qiáng).深入淺出—DBA入門、進(jìn)階與診斷案例[M].北京:人民郵電出版社,2006:109-156.
[2]趙振平.ORACLE數(shù)據(jù)庫(kù)精講與疑難解析[M].北京:電子工業(yè)出版社,2008:568-634.
[3]THOMAS Kyte.Expert ORACLE Database Architechture and Performance Tuning[M].A Press,2005:265-360.
(責(zé)任編輯:李 華)
The ORACLE Database Performance Optimization Based on the Business Environment
YANG Zheng-xiao1,YANG Yang2
(1.School of Software and Service Outsourcing,Chien-Shiung Institute of Technology,Taicang 215411,China;2.Department of Computer Engineering,Nantong University,Nantong 226019,China)
TP311.13
A
1008-5475(2012)02-0051-04
2012-01-15;
2012-02-26
楊正校(1963—),男,江蘇沭陽(yáng)人,副教授,碩士,主要從事計(jì)算機(jī)技術(shù)與高職教育研究.