国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能優(yōu)化

2015-04-20 18:17于彥國(guó)
電子技術(shù)與軟件工程 2015年6期
關(guān)鍵詞:Oracle數(shù)據(jù)庫(kù)性能優(yōu)化

于彥國(guó)

摘 要 數(shù)據(jù)庫(kù)性能的高低,對(duì)于企業(yè)管理水平和工作效率的提升都具有非常重要的作用。本文在分析數(shù)據(jù)庫(kù)系統(tǒng)主要的性能評(píng)價(jià)指標(biāo)基礎(chǔ)上,提出了Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的主要優(yōu)化措施,從而為提升數(shù)據(jù)庫(kù)性能提供一定的參考。

【關(guān)鍵詞】Oracle數(shù)據(jù)庫(kù) 性能優(yōu)化 內(nèi)存分配

1 引言

隨著信息化技術(shù)的不斷發(fā)展,越來(lái)越多的企業(yè)開(kāi)始管理創(chuàng)新,廣泛的應(yīng)用信息化管理系統(tǒng),從而提升企業(yè)的現(xiàn)代化管理水平。而信息化管理系統(tǒng)基本上都是建立在數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)上的各種功能的實(shí)現(xiàn),因此數(shù)據(jù)庫(kù)系統(tǒng)性能的高低,就會(huì)直接影響應(yīng)用系統(tǒng)的性能。而且一般來(lái)說(shuō)當(dāng)大型數(shù)據(jù)庫(kù)在運(yùn)行一段時(shí)間之后,由于存在著大量的數(shù)據(jù),在運(yùn)算速度上就會(huì)不同程度的受到影響,而計(jì)算機(jī)操作系統(tǒng)、內(nèi)存、應(yīng)用程序算法以及數(shù)據(jù)庫(kù)服務(wù)器等諸多元素都會(huì)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的性能構(gòu)成重要的影響。

2 數(shù)據(jù)庫(kù)系統(tǒng)主要性能的評(píng)價(jià)指標(biāo)分析

數(shù)據(jù)庫(kù)系統(tǒng)性能評(píng)價(jià)指標(biāo)主要有以下幾點(diǎn):

2.1 系統(tǒng)吞吐量

這個(gè)指標(biāo)指的是單位時(shí)間里,數(shù)據(jù)庫(kù)系統(tǒng)所能夠完成SQL語(yǔ)句的執(zhí)行數(shù)量。通過(guò)是以每秒事務(wù)量(tps)來(lái)衡量。系統(tǒng)吞吐量越高,那么系統(tǒng)反應(yīng)時(shí)間和執(zhí)行速度也會(huì)越快。

2.2 用戶響應(yīng)時(shí)間

這主要指的是用戶向數(shù)據(jù)庫(kù)提交SQL執(zhí)行語(yǔ)句開(kāi)始,到數(shù)據(jù)庫(kù)執(zhí)行并向用戶反饋結(jié)果集這段時(shí)間,也就是應(yīng)用系統(tǒng)的反應(yīng)時(shí)間,主要是以毫秒來(lái)衡量。通常分為CPU執(zhí)行時(shí)間和用戶等待時(shí)間兩種。

2.3 數(shù)據(jù)庫(kù)命中率

Oracle數(shù)據(jù)庫(kù)系統(tǒng)中,用戶進(jìn)程所使用到的數(shù)據(jù)都會(huì)先集中在緩沖區(qū),也就是會(huì)集中到系統(tǒng)內(nèi)存中,這樣能夠提升數(shù)據(jù)讀取效率,如果內(nèi)存數(shù)據(jù)能夠符合用戶的需要,那么命中率就會(huì)越高,那么系統(tǒng)執(zhí)行效率就會(huì)越高。第四,內(nèi)存使用情況。這主要體現(xiàn)在共享內(nèi)存和運(yùn)行內(nèi)存以及永久內(nèi)存三個(gè)存儲(chǔ)空間的科學(xué)分配上,內(nèi)存利用效率越高,系統(tǒng)性能就會(huì)越高。第五,磁盤I/O速度。因?yàn)榇罅康臄?shù)據(jù)都會(huì)存儲(chǔ)在硬盤上,因此從硬盤數(shù)據(jù)轉(zhuǎn)移到內(nèi)存單位時(shí)間I/O規(guī)模越大,那么速度就會(huì)越快,就能夠有效縮短用戶響應(yīng)時(shí)間,從而提升數(shù)據(jù)庫(kù)系統(tǒng)性能。

3 Oracle數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的優(yōu)化技術(shù)分析

3.1 SQL語(yǔ)句的優(yōu)化

SQL語(yǔ)句是操作數(shù)據(jù)庫(kù)的腳本語(yǔ)言,如果SQL語(yǔ)句能夠在優(yōu)化器的作用下,能夠充分利用數(shù)據(jù)庫(kù)的索引表,那么就能夠有效減少數(shù)據(jù)庫(kù)掃描索引表的I/O次數(shù),就能夠提升數(shù)據(jù)執(zhí)行效率。而優(yōu)化SQL語(yǔ)句的主要步驟有以下幾點(diǎn):

(1)查找存有問(wèn)題的SQL語(yǔ)句,對(duì)這些語(yǔ)句進(jìn)行提前優(yōu)化,發(fā)現(xiàn)問(wèn)題就能夠有效降低錯(cuò)誤的讀取數(shù)據(jù)庫(kù)的頻度,查找問(wèn)題SQL語(yǔ)句的主要方法主要是通過(guò)搜集統(tǒng)計(jì)數(shù)據(jù)功能,在Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)中含有DBMSSTATS包以及ANALYZE解析命令,其中DBMSSTATS包主要是搜集有關(guān)鏈接數(shù)據(jù)行的相關(guān)統(tǒng)計(jì)數(shù)據(jù),語(yǔ)法結(jié)構(gòu)為:exec DBMS_SATS.gather_table_stats(owname,tablename,partnmae)。而ANALYZE解析命令則是分析數(shù)據(jù)簇的相關(guān)情況。其主要的語(yǔ)法結(jié)構(gòu)為ANALYEZE CLUSTER Cluste_name Computer STATISTICS。然后再使用SQLTrace32對(duì)SQL語(yǔ)句進(jìn)行分析,oracle中的udump管理區(qū)就會(huì)對(duì)SQL語(yǔ)句進(jìn)行跟蹤,對(duì)語(yǔ)法的解析和執(zhí)行以及CPU時(shí)間和語(yǔ)法執(zhí)行時(shí)間和邏輯讀取的次數(shù)等參數(shù)進(jìn)行記錄,接著在通過(guò)Oracle Enterprise Manager Console圖形工具獲得數(shù)據(jù)庫(kù)相應(yīng)的性能指標(biāo)信息,從而為SQL語(yǔ)句優(yōu)化提供重要的參考。

(2)構(gòu)建正確的SQL語(yǔ)句,提升查詢效率。在使用SQL語(yǔ)句時(shí)要規(guī)避索引不能夠和用戶表空間建立在同一個(gè)磁盤上,這樣會(huì)造成大量的資源浪費(fèi)現(xiàn)象。另外WHERE的子句的查詢順序也要進(jìn)行優(yōu)化,注意從上至下的順序進(jìn)行查詢,同時(shí)表之間的連接要出現(xiàn)在其他WHERE標(biāo)識(shí)符之前,這樣就能夠有效減少調(diào)用數(shù)據(jù)庫(kù)的數(shù)據(jù)量,從而提升SQL語(yǔ)句的執(zhí)行效率。

3.2 Oracle內(nèi)存優(yōu)化調(diào)整

Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)中,其內(nèi)存結(jié)構(gòu)相對(duì)其他數(shù)據(jù)庫(kù)管理系統(tǒng)而言相對(duì)復(fù)雜,主要影響的參數(shù)包括Shared pool,Database Buffer Cache以及Java Pool等。對(duì)于Oracle的內(nèi)存結(jié)構(gòu)的優(yōu)化主要可以從下面幾個(gè)方面著手:

3.2.1 對(duì)Shared pool進(jìn)行優(yōu)化

也就是對(duì)共享池的大小進(jìn)行合理優(yōu)化。共享池主要是緩沖區(qū)以及數(shù)據(jù)字典高速緩沖區(qū)的重要存放點(diǎn),如果數(shù)據(jù)庫(kù)緩沖區(qū)設(shè)置較小,那么就會(huì)影響到數(shù)據(jù)使用性能。如果緩沖區(qū)過(guò)大,隨著使用次數(shù)的不斷增加,就會(huì)造成大量的數(shù)據(jù)碎片,于是也會(huì)逐漸降低系統(tǒng)的性能。通常提升數(shù)據(jù)庫(kù)緩沖區(qū)的命中率可以通過(guò)下面的執(zhí)行語(yǔ)句來(lái)進(jìn)行優(yōu)化:Select(1-sum(reloads/sum(pins))) from v$librarycache。執(zhí)行這個(gè)SQL語(yǔ)句之后,返回的結(jié)果如果小于0.95,那么就需要增加這個(gè)共享池大小,來(lái)提升緩沖區(qū)命中率。而優(yōu)化數(shù)據(jù)字典緩存則可以通過(guò)下面的SQL語(yǔ)句來(lái)優(yōu)化:select sum(1-(getmisses)/(sum(gets)+sum(getmisses))) from v$rowcache。如果這個(gè)SQL語(yǔ)句的執(zhí)行值小于0.85,那也要增大共享池大小來(lái)優(yōu)化內(nèi)存結(jié)構(gòu)。

3.2.2 對(duì)高速緩存進(jìn)行優(yōu)化

如果緩沖區(qū)中包含的高速緩存空間越大,那么載入到內(nèi)存中的數(shù)據(jù)量就會(huì)越大,那么I/O存取效率就會(huì)越高,對(duì)此可以通過(guò)下面的語(yǔ)法來(lái)進(jìn)行優(yōu)化: select name,value from v$sysstat where name in (‘dbblokcgets,consistent gets,Physical reads)。執(zhí)行這個(gè)SQL語(yǔ)句之后,如果返回的值小于0.85,那么就需要增加緩沖區(qū)高速緩存的值來(lái)提升數(shù)據(jù)庫(kù)的性能。

3.2.3 優(yōu)化日志緩沖區(qū)

如果日志緩沖區(qū)分配值太小,那么就沒(méi)有充分的空間來(lái)防止重做條目,從而延長(zhǎng)等待時(shí)間。對(duì)此可以從下面這個(gè)語(yǔ)句來(lái)查看日志緩存區(qū)是否滿足需求:Select name,value from v$sysstat where name=redo log space requests。如果這個(gè)語(yǔ)句執(zhí)行之后,得到的結(jié)果為0,那就不需要進(jìn)行調(diào)整,否則就需要增加日志緩存,通??梢陨险{(diào)5%左右,然后重復(fù)執(zhí)行這個(gè)語(yǔ)法,直到最終的返回值接近0。

3.3 針對(duì)oracle的表空間進(jìn)行優(yōu)化

表空間是Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)的重要?jiǎng)?chuàng)新,合理使用表空間能夠有效提升數(shù)據(jù)庫(kù)的性能。對(duì)此可以從下面幾個(gè)方面來(lái)著手優(yōu)化:

3.3.1 科學(xué)規(guī)劃表空間

將數(shù)據(jù)和索引分到不同的表空間,這樣能夠有效降低I/O競(jìng)爭(zhēng)。在修改應(yīng)用上,將重演日志和歸檔日志進(jìn)行分開(kāi),盡可能將90%以上的輸入輸出操作放在系統(tǒng)表空間中,或者在索引表空間和回滾表空間中。

3.3.2 優(yōu)化表空間的結(jié)構(gòu)

對(duì)此首先就要分離系統(tǒng)表空間,徹底規(guī)避在系統(tǒng)表空間中存儲(chǔ)大量非系統(tǒng)用戶對(duì)象,這樣就會(huì)造成數(shù)據(jù)維護(hù)的數(shù)據(jù)調(diào)用重復(fù)讀,從而降低數(shù)據(jù)庫(kù)系能。然后就要分離索引段。特別要規(guī)避和相關(guān)的數(shù)據(jù)段存儲(chǔ)在同一個(gè)表空間中,如果調(diào)用同一個(gè)數(shù)據(jù),就會(huì)重復(fù)執(zhí)行輸入輸出操作,同時(shí)還容易出現(xiàn)沖突,導(dǎo)致時(shí)間等待,從而降低數(shù)據(jù)庫(kù)利用效率。最后要分離臨時(shí)表空間,臨時(shí)的表空間不應(yīng)該和其他類型的段放在一起存儲(chǔ),這對(duì)于數(shù)據(jù)庫(kù)性能的影響也非常明顯。

4 結(jié)語(yǔ)

總而言之,Oracle數(shù)據(jù)庫(kù)管理系統(tǒng)的功能非常強(qiáng)大,在應(yīng)用Oracle數(shù)據(jù)庫(kù)時(shí),需要結(jié)合相應(yīng)的硬件環(huán)境,同時(shí)在軟件性能上采用科學(xué)的數(shù)據(jù)庫(kù)布局模式,再加上合理的內(nèi)存分配,SQL語(yǔ)句的優(yōu)化以及表空間的優(yōu)化,就能夠有效提升Oracle數(shù)據(jù)庫(kù)性能,從而提升應(yīng)用系統(tǒng)的性能。

參考文獻(xiàn)

[1]李可可.淺析Oracle數(shù)據(jù)庫(kù)的性能優(yōu)化方法[J].硅谷,2011(02).

[2]孫風(fēng)棟,閆海珍.Oracle 10g數(shù)據(jù)庫(kù)系統(tǒng)性能優(yōu)化與調(diào)整[J].計(jì)算機(jī)技術(shù)與發(fā)展,2009(02).

作者單位

杭州市西溪醫(yī)院 浙江省杭州市 310023

猜你喜歡
Oracle數(shù)據(jù)庫(kù)性能優(yōu)化
SQL Server數(shù)據(jù)庫(kù)性能優(yōu)化的幾點(diǎn)分析