摘 要:數(shù)據(jù)庫(kù)性能分析與優(yōu)化是一項(xiàng)涉及多個(gè)層面的復(fù)雜工作,通過(guò)統(tǒng)一規(guī)劃、系統(tǒng)分析做出相應(yīng)的優(yōu)化方法和措施,可以提高數(shù)據(jù)庫(kù)的穩(wěn)定性和可用性,保障系統(tǒng)高效地運(yùn)行,解決系統(tǒng)瓶頸,節(jié)約系統(tǒng)開(kāi)銷(xiāo),具有良好的應(yīng)用價(jià)值。
關(guān)鍵詞:數(shù)據(jù)庫(kù)性能優(yōu)化SQL Server
中圖分類(lèi)號(hào):TP311.13文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1674-098X(2011)01(a)-0035-01
1 性能優(yōu)化的概念
性能優(yōu)化是一項(xiàng)活動(dòng),這項(xiàng)活動(dòng)通過(guò)優(yōu)化應(yīng)用程序、修改系統(tǒng)參數(shù)、改變系統(tǒng)配置(硬件調(diào)整)來(lái)改變系統(tǒng)性能。性能優(yōu)化包括對(duì)硬件配置、操作系統(tǒng)(0S)與關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)配置,以及對(duì)訪問(wèn)這些組件的應(yīng)用的詳細(xì)分析與優(yōu)化。
1.1 應(yīng)用優(yōu)化
應(yīng)用是最有可能導(dǎo)致性能問(wèn)題的部分。應(yīng)用優(yōu)化相對(duì)來(lái)說(shuō)通常易于監(jiān)控,有時(shí)也易于修改,以達(dá)到更高的效能。通過(guò)優(yōu)化應(yīng)用,也可以影響優(yōu)化硬件與SQL Server,這樣可以有效地控制應(yīng)用不會(huì)過(guò)量地使用系統(tǒng)資源。應(yīng)用優(yōu)化是基于SQL Server系統(tǒng)性能調(diào)整的第一步,涉及應(yīng)用系統(tǒng)程序優(yōu)化、SQL語(yǔ)句優(yōu)化、Web應(yīng)用優(yōu)化、服務(wù)器優(yōu)化、索引、鎖優(yōu)化等諸多因素。
1.2 SQL 語(yǔ)句優(yōu)化
應(yīng)用優(yōu)化包括分析SQL語(yǔ)句,并決定相關(guān)的查詢是否有效。低效率的查詢通常使用過(guò)量的系統(tǒng)資源并需要使用過(guò)多的時(shí)間來(lái)運(yùn)行。通過(guò)調(diào)整這些SQL語(yǔ)句,以及調(diào)整訪問(wèn)數(shù)據(jù)庫(kù)應(yīng)用的方法,可以顯著地改善一個(gè)系統(tǒng)的性能。查詢是數(shù)據(jù)庫(kù)操作的基礎(chǔ),查詢的速度直接影響系統(tǒng)的性能,和其他大型數(shù)據(jù)庫(kù)系統(tǒng)一樣,SQL server也提供了查詢優(yōu)化機(jī)制,對(duì)查詢語(yǔ)句進(jìn)行分析,找出最佳查詢策略,從而提高查詢速度。但是,查詢優(yōu)化器很難解決語(yǔ)義方面的問(wèn)題,在具體應(yīng)用中,應(yīng)有效運(yùn)用SQL語(yǔ)法。
1.3 B/S模式優(yōu)化
基于B/S的計(jì)算模式,使得許多計(jì)算負(fù)載轉(zhuǎn)移到Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器上。為有效利用系統(tǒng)資源,可根據(jù)具體應(yīng)用采取以下優(yōu)化策略。
(1)Web應(yīng)用程序優(yōu)化
在基于B/S模式的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中,對(duì)于Web應(yīng)用程序的優(yōu)化主要體現(xiàn)在對(duì)應(yīng)用程序中使用的數(shù)據(jù)庫(kù)操作語(yǔ)句的優(yōu)化上。其中要遵循的一個(gè)基本原則就是要使操作的數(shù)據(jù)量和操作次數(shù)隨操作的進(jìn)行而迅速減少,這樣才能達(dá)到理想的響應(yīng)結(jié)果。
(2)Web服務(wù)器優(yōu)化
主要是調(diào)節(jié)訪問(wèn)Web服務(wù)器的限制規(guī)則和Web應(yīng)用程序運(yùn)行的限制規(guī)則,其中后者的調(diào)整將是系統(tǒng)能夠穩(wěn)定高效運(yùn)行的關(guān)鍵。由于客戶對(duì)于Web服務(wù)器的訪問(wèn)量是相當(dāng)大的,所以在調(diào)整中,一般要限制Web應(yīng)用程序運(yùn)行的時(shí)間和占用的系統(tǒng)資源,避免出現(xiàn)資源枯竭的情況發(fā)生。
2 SQL Server 優(yōu)化策略
SQL 優(yōu)化與硬件調(diào)整是緊密相關(guān)的,是對(duì)數(shù)據(jù)庫(kù)服務(wù)器的性能調(diào)整。通過(guò)修改SQL server的配置參數(shù),SQL優(yōu)化包括改變它分配資源的方法以及它的工作方式。有些配置參數(shù)與資源的使用有關(guān),有些則無(wú)關(guān)。那些與資源使用有關(guān)的參數(shù)緊密地依賴于系統(tǒng)中可用的硬件資源。這些參數(shù)必須基于系統(tǒng)中可用的硬件資源的類(lèi)型與數(shù)量進(jìn)行修改。具有許多可用內(nèi)存的系統(tǒng)應(yīng)該調(diào)整SQL server,以充分利用這些附加的內(nèi)存。應(yīng)該修改輸入/輸出(I/O)參數(shù),以充分利用系統(tǒng)中所擁有的I/O系統(tǒng)類(lèi)型。SQL Server調(diào)整與硬件調(diào)整包括為需求的工作量提供足夠的系統(tǒng)資源??偟恼f(shuō)來(lái),SQL Server調(diào)整涉及服務(wù)器硬件調(diào)整、數(shù)據(jù)庫(kù)優(yōu)化設(shè)計(jì)、SQL server配置參數(shù)調(diào)整等內(nèi)容。
3 硬件優(yōu)化策略
硬件優(yōu)化,是為要求的工作量提供足夠的硬件資源的行動(dòng),包括數(shù)據(jù)庫(kù)大小估計(jì)與容量規(guī)劃。容量規(guī)劃包括計(jì)劃一個(gè)系統(tǒng)的容量,以維護(hù)用戶組預(yù)期的服務(wù)級(jí)別。要調(diào)整系統(tǒng)的硬件,需要決定可以為SQL Server分配哪些資源以改進(jìn)其性能,這些資源包括附加的內(nèi)存、CPU、I/O資源或所有這些資源的組合。調(diào)整SQL server系統(tǒng)的大部分工作主要涉及決定應(yīng)該增加哪種資源,以及增加多少資源。
硬件調(diào)整是非常重要的,因?yàn)樵S多典型的性能問(wèn)題是由不充足的或配置失當(dāng)?shù)挠布M件導(dǎo)致的。I/O子系統(tǒng)是一個(gè)數(shù)據(jù)庫(kù)性能調(diào)整的關(guān)鍵性部分。通過(guò)提供足夠的CPU、內(nèi)存與I/O資源,可以避免許多性能問(wèn)題。
4 性能優(yōu)化的目標(biāo)
有不同的方式確定性能優(yōu)化工作的目標(biāo)。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)可以用各種定量的方法分析,其中最重要指標(biāo)如下:
(1)響應(yīng)時(shí)間和吞吐量
響應(yīng)時(shí)間是指結(jié)果集的第一行返回所需要的時(shí)間,是應(yīng)用做出反應(yīng)的時(shí)間,以毫秒或秒表示,該值越低越好。響應(yīng)時(shí)間通常也稱(chēng)為用戶收到查詢正被處理的直觀確認(rèn)時(shí)刻所感知的時(shí)間長(zhǎng)度。數(shù)據(jù)庫(kù)用戶響應(yīng)時(shí)間又可以分為系統(tǒng)服務(wù)時(shí)間和用戶等待時(shí)間兩項(xiàng),即:數(shù)據(jù)庫(kù)用戶響應(yīng)時(shí)間=系統(tǒng)服務(wù)時(shí)間+用戶等待時(shí)間。
吞吐量是指給定時(shí)間內(nèi)服務(wù)器能夠處理的查詢總數(shù),即每個(gè)單元時(shí)間完成的工作,以每秒鐘的事務(wù)量表示;該值越高越好。提高系統(tǒng)的吞吐量也有兩種方法。
(2)數(shù)據(jù)庫(kù)的可用性
數(shù)據(jù)庫(kù)是否能滿足7×24小時(shí)的要求。如:SQLServer2000增強(qiáng)了對(duì)Windows NT和Windows2000故障轉(zhuǎn)移群集的支持。故障轉(zhuǎn)移群集支持每個(gè)群集有一到四個(gè)服務(wù)器,具體取決于操作系統(tǒng)。群集在應(yīng)用程序看來(lái)就像是單個(gè)虛擬服務(wù)器。如果主服務(wù)器節(jié)點(diǎn)出現(xiàn)故障,另一節(jié)點(diǎn)將檢測(cè)出主服務(wù)器節(jié)點(diǎn)丟失,并自動(dòng)開(kāi)始為所有發(fā)送到虛擬服務(wù)器的請(qǐng)求提供服務(wù)。群集在備用節(jié)點(diǎn)下保持運(yùn)行,直到修復(fù)或替換主服務(wù)
(3)數(shù)據(jù)庫(kù)的命中率
用戶對(duì)數(shù)據(jù)的需求是否能在內(nèi)存中得到滿足,給出快速的響應(yīng)??捎酶咚倬彺婷新蕘?lái)衡量。這一比率是高速緩存命中總數(shù)除以自SQL Server實(shí)例啟動(dòng)后對(duì)高速緩存的查找總數(shù)。由于從高速緩存中讀數(shù)據(jù)比從磁盤(pán)中讀數(shù)據(jù)的開(kāi)銷(xiāo)要小得多,一般希望這一數(shù)值高一些。通常,可以通過(guò)增加SQL Server可用的內(nèi)存數(shù)量來(lái)提高高速緩存命中率。
參考文獻(xiàn)
[1]黨會(huì)軍.數(shù)據(jù)庫(kù)性能評(píng)測(cè)與分析.國(guó)家智能計(jì)算機(jī)研究開(kāi)發(fā)中心,2002.
[2]汪東升.基于Web應(yīng)用的數(shù)據(jù)庫(kù)性能調(diào)整和優(yōu)化[J].計(jì)算機(jī)工程與應(yīng)用,1999.8.
[3]趙敏.基于SQL Server性能調(diào)整和測(cè)評(píng)方法[J].計(jì)算機(jī)工程,2000.5[30].
[4]任淑琴,周柏濤.基于Web的數(shù)據(jù)庫(kù)應(yīng)用程序優(yōu)化的技術(shù)[C].中國(guó)航空學(xué)會(huì)青年科技論壇文集,2004,21(4):558-55.
[5]聶文燕.SQL Server數(shù)據(jù)查詢的優(yōu)化方法[J].工程技術(shù)與管理論壇,2006,8(4):59-61.