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

?

淺談Oracle數(shù)據(jù)庫性能調(diào)優(yōu)

2012-12-31 00:00:00梁云
科技與企業(yè) 2012年16期

【摘 要】論述影響Oracle數(shù)據(jù)庫性能的因素及其優(yōu)化與調(diào)整策略。

【關(guān)鍵詞】Oracle;數(shù)據(jù)庫;性能調(diào)優(yōu);策略

1、引言

數(shù)據(jù)庫系統(tǒng)是人們用來管理信息的有效存儲(chǔ)工具,但隨著信息社會(huì)與網(wǎng)絡(luò)應(yīng)用的不斷發(fā)展,數(shù)據(jù)庫規(guī)模也隨之不斷的擴(kuò)大,數(shù)據(jù)庫系統(tǒng)的性能問題就越來越突出。Oracle數(shù)據(jù)庫是目前用戶使用最為廣泛的數(shù)據(jù)庫管理系統(tǒng),選擇使用Oracle作為數(shù)據(jù)庫應(yīng)用系統(tǒng)的用戶,一般是需要處理的數(shù)據(jù)量較多,對(duì)于這種大型數(shù)據(jù)庫來說,數(shù)據(jù)庫運(yùn)行效率是最重要的。同時(shí),運(yùn)行效率也是數(shù)據(jù)庫評(píng)估的重要指標(biāo)之一,然而,在實(shí)際應(yīng)用中,隨著訪問量的加大,需要處理的數(shù)據(jù)日益增加,數(shù)據(jù)庫系統(tǒng)的性能也將下降,為此,數(shù)據(jù)庫系統(tǒng)性能優(yōu)化與調(diào)整將突顯出其更為重要作用。

2、影響Oracle數(shù)據(jù)庫性能的因素

Oracle數(shù)據(jù)庫系統(tǒng)性能調(diào)優(yōu)主要從硬件和軟件兩個(gè)方面入手進(jìn)行分析,找出造成系統(tǒng)性能下降的主要因素。

硬件方面主要包括數(shù)據(jù)庫服務(wù)器的CPU,內(nèi)存以及網(wǎng)絡(luò)環(huán)境。在任何機(jī)器中CPU的數(shù)據(jù)處理能力往往是衡量計(jì)算機(jī)性能的一個(gè)標(biāo)準(zhǔn),并且Oracle是一個(gè)多用戶并行的數(shù)據(jù)庫系統(tǒng),對(duì)CPU方面的要求更高,合理配置CPU的數(shù)量直接影響數(shù)據(jù)庫的性能。衡量機(jī)器性能的另外一個(gè)指標(biāo)就是內(nèi)存的多少,內(nèi)存越大,I/O的響應(yīng)時(shí)間就會(huì)越短。網(wǎng)絡(luò)的性能特別是網(wǎng)絡(luò)I/O更是影響數(shù)據(jù)庫性能的一個(gè)重要因素。

軟件方面主要包括數(shù)據(jù)庫配置以及應(yīng)用程序的設(shè)計(jì)。Oracle數(shù)據(jù)庫的配置是數(shù)據(jù)庫運(yùn)行的基礎(chǔ),數(shù)據(jù)庫性能的好壞直接取決于配置參數(shù)的優(yōu)劣。配置參數(shù)主要由內(nèi)存區(qū)的設(shè)置,I/O設(shè)置,回滾段設(shè)置以及碎片整理等組成。應(yīng)用程序的設(shè)計(jì)也是影響數(shù)據(jù)庫性能的另一關(guān)鍵因素,其主要包括不合理的表結(jié)構(gòu)設(shè)計(jì)與不合理的SQL語句,程序員在開發(fā)過程中的這兩項(xiàng)不合理的設(shè)計(jì)都會(huì)造成數(shù)據(jù)庫系統(tǒng)性能的嚴(yán)重下降。

3、Oracle數(shù)據(jù)庫系統(tǒng)性能優(yōu)化與調(diào)整策略

任何—個(gè)數(shù)據(jù)庫管理系統(tǒng)都會(huì)面臨數(shù)據(jù)庫運(yùn)行效率的問題,在了解了影響數(shù)據(jù)庫系統(tǒng)性能的因素之后,我們可以從這些因素入手,對(duì)癥下藥將數(shù)據(jù)庫的性能調(diào)整到最優(yōu)。具體說來主要是從以下幾個(gè)方面對(duì)Oracle數(shù)據(jù)庫系統(tǒng)性能進(jìn)行優(yōu)化與調(diào)整:

3.1 內(nèi)存區(qū)設(shè)置的優(yōu)化

Oracle數(shù)據(jù)庫的內(nèi)存結(jié)構(gòu)主要分為兩部分:SGA和PGA,這兩部分內(nèi)存結(jié)構(gòu)的分配是否合理決定著數(shù)據(jù)庫系統(tǒng)的性能。其中SGA是Oracle數(shù)據(jù)庫的核心與靈魂,是對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行快速訪問的一個(gè)系統(tǒng)區(qū)域,主要是由共享池,數(shù)據(jù)緩沖區(qū)和日志緩沖區(qū)三部分組成。

3.1.1 共享池的優(yōu)化與調(diào)整

共享池的優(yōu)化與調(diào)整主要是通過縮短操作時(shí)間來實(shí)現(xiàn)的。具體說來,就是指對(duì)于之前已經(jīng)分析過的模本,執(zhí)行命令的語句可以在共享池中找到并進(jìn)行重用,不需要再消耗時(shí)間另外進(jìn)行解析,這樣一來就要求我們?cè)趯?duì)共享池進(jìn)行優(yōu)化的時(shí)候,要盡量保證存放在數(shù)據(jù)庫中的信息在應(yīng)用程序中能夠經(jīng)常被訪問到。因此,我們可以通過數(shù)據(jù)庫緩沖區(qū)的命中率來了解到共享池的合適程度。

3.1.2 數(shù)據(jù)緩沖區(qū)的調(diào)整

數(shù)據(jù)緩沖區(qū)的調(diào)整同樣可以縮短操作時(shí)間。用戶在進(jìn)行數(shù)據(jù)檢索時(shí)相關(guān)數(shù)據(jù)已經(jīng)存儲(chǔ)于緩沖區(qū)中。如果用戶進(jìn)行檢索查詢的相關(guān)數(shù)據(jù)包含在緩沖區(qū)中,那么系統(tǒng)將會(huì)通過緩沖區(qū)直接將數(shù)據(jù)傳送給用戶。相反,如果用戶所查詢的數(shù)據(jù)不在緩沖區(qū)內(nèi),那么系統(tǒng)會(huì)先從數(shù)據(jù)文件中通過服務(wù)器進(jìn)程將數(shù)據(jù)讀取出來發(fā)送到緩沖區(qū)里,然后再按照之前所講述的方式由緩沖區(qū)發(fā)送給用戶,這樣一來就多了一個(gè)中間環(huán)節(jié),使得操作時(shí)間增長。因此,當(dāng)用戶進(jìn)行數(shù)據(jù)查詢時(shí),也要盡可能多的保證在緩沖區(qū)內(nèi)有足夠多的相關(guān)數(shù)據(jù),只有這樣才能很好的提高數(shù)據(jù)緩沖區(qū)的性能。

3.1.3 調(diào)整日志緩沖

日志緩沖區(qū)的作用在于將修改的數(shù)據(jù)信息存放于此。為了將日志寫進(jìn)日志文件,首先要將日志放入緩沖區(qū),然后由L GWR進(jìn)程在相關(guān)條件滿足時(shí)將已存放在日志緩沖區(qū)的日志信息寫入到日志文件里。若日志緩沖區(qū)沒有足夠的空間存放信息,日志就無法寫入,也就是說寫入失敗。這樣也會(huì)導(dǎo)致網(wǎng)絡(luò)I/O的運(yùn)行頻繁,嚴(yán)重影響了數(shù)據(jù)庫的系統(tǒng)性能。

3.1.4 PGA的調(diào)整

PGA區(qū)的主要構(gòu)成部分是由會(huì)話區(qū)和排序區(qū)。其中,排序區(qū)的設(shè)置對(duì)數(shù)據(jù)庫的性能影響重大。在排序的方式上,主要有兩種方式,一種是在PGA的排序區(qū)進(jìn)行排序;一種是在臨時(shí)表空間的臨時(shí)段中進(jìn)行排序。但是,在使用臨時(shí)段進(jìn)行排序時(shí),因要對(duì)磁盤進(jìn)行網(wǎng)絡(luò)I/O操作,這樣就延長了運(yùn)行時(shí)間,影響了排序效率。所以,在排序時(shí),要盡量多用排序區(qū)進(jìn)行排序操作。

3.2 磁盤I/O優(yōu)化

對(duì)于數(shù)據(jù)庫系統(tǒng)來說,磁盤I/O操作是數(shù)據(jù)庫性能優(yōu)化最重要的方面,磁盤I/O性能優(yōu)劣取決于多個(gè)方面的影響。其中有I/O操作次數(shù)過多,數(shù)據(jù)塊空間的分配等原因,那么減少I/O操作的次數(shù)最有效的辦法就是將使用頻率高的數(shù)據(jù)存放在緩沖區(qū)內(nèi),同時(shí)也要降低Oracle服務(wù)器查詢信息的時(shí)間,方法之一就是分區(qū)和建立索引。

3.2.1 優(yōu)化設(shè)計(jì)索引Index

數(shù)據(jù)庫中非常重要的結(jié)構(gòu)就包括了索引,它是優(yōu)化性能的基礎(chǔ)。原因在于索引能夠快速找到需查找數(shù)據(jù)的地址,有效利用索引,從而提高訪問數(shù)據(jù)庫的速度,這樣就提高了查詢效率,同時(shí)可以利用索引減少數(shù)據(jù)庫中的磁盤讀寫次數(shù)。在建立索引時(shí),也要注意并是不建立更多的索引就越好,雖然有著合理科學(xué)的索引數(shù)據(jù)庫比沒有建立索引數(shù)據(jù)庫的效率要高好幾十倍,但如果有些索引經(jīng)常需要修改,這樣不僅影響了系統(tǒng)性能,也占據(jù)了系統(tǒng)的存儲(chǔ)空間。

3.2.2 有效利用分區(qū)技術(shù)

分區(qū)可以將不同的信息數(shù)據(jù)保存在不同的磁盤里,這是將數(shù)據(jù)在數(shù)據(jù)庫中進(jìn)行物理區(qū)分。在利用分區(qū)技術(shù)時(shí),把需要查詢的數(shù)據(jù)在不同的分區(qū)中進(jìn)行掃描,可以大大縮短查詢時(shí)間,而不要進(jìn)行全表掃描。在進(jìn)行分區(qū)的同時(shí),可將數(shù)據(jù)分散到不同的磁盤中,這樣磁盤I/O也不會(huì)競爭嚴(yán)重了。

3.3 設(shè)置同滾段

在Oracle數(shù)據(jù)庫中,回滾段設(shè)置的目的是保存數(shù)據(jù)的原始版本,利用初始版本可以撤銷用戶未保存的資料。Oracle數(shù)據(jù)庫的作用之一就是可以從系統(tǒng)操作的失敗中得到數(shù)據(jù)的恢復(fù),在此,就體現(xiàn)出了回滾段在數(shù)據(jù)處理中的重要作用。在優(yōu)化回滾段時(shí),也要根據(jù)用處的大小建立大小不等的回滾段,并且將這些回滾段分散到不同的分區(qū)中。

3.4 碎片整理

數(shù)據(jù)碎片的產(chǎn)生是必然的,因?yàn)橄到y(tǒng)操作的不斷出現(xiàn),數(shù)據(jù)對(duì)象的不斷變化,由此產(chǎn)生的碎片可以分為三類,分別為表空間級(jí)、表級(jí)和索引級(jí)。

(1)表空問級(jí)碎片是最基礎(chǔ)的碎片,往往是由于一些基本的操作引起的,例如執(zhí)行命令的建立、刪除等等。優(yōu)化的措施可以通過執(zhí)行導(dǎo)出命令將數(shù)據(jù)導(dǎo)出,接著利用TRUN—CATE刪除導(dǎo)出的數(shù)據(jù),最后再利用有效的程度將表空間級(jí)碎片清除。

(2)表級(jí)碎片的產(chǎn)生可以通過設(shè)置合適的數(shù)據(jù)塊來消除,它是由于數(shù)據(jù)庫存儲(chǔ)不連續(xù)所致。在創(chuàng)建數(shù)據(jù)庫時(shí),根據(jù)所需記錄的數(shù)據(jù)大小來設(shè)置相應(yīng)的數(shù)據(jù)塊大小,可以提高數(shù)據(jù)塊系統(tǒng)的運(yùn)行效率。

(3)索引級(jí)碎片是由于索引過于頻繁所致,通過干擾B-TREE結(jié)構(gòu)和葉節(jié)點(diǎn)的排序引起的。調(diào)整的措施可以減少已建立索引的數(shù)據(jù)數(shù)量,特別是變化頻率較低的數(shù)據(jù),這樣可以降低索引碎片的產(chǎn)生。

3.5 CPU性能調(diào)整

通過對(duì)CPU性能的調(diào)整可以有效利用數(shù)據(jù)庫中的各種資源,提高數(shù)據(jù)塊的性能。

(1)盡可能多地使用多個(gè)CPU來處理用戶的事務(wù),如果有可能的話,需要將服務(wù)器和CPU請(qǐng)求分開。

(2)在進(jìn)行數(shù)據(jù)查詢時(shí),可以使用PQO查詢方式。PQO方式可以在不同的磁盤中同時(shí)進(jìn)行SQL語句的執(zhí)行處理,同時(shí)進(jìn)行數(shù)據(jù)的讀取。

3.6 SQL語句的優(yōu)化

數(shù)據(jù)庫所以的操作都是通過SQL語句來執(zhí)行的,包括最簡單的添加和刪除。所以,Oracle數(shù)據(jù)庫的性能高低在很大程度上也取決于SQL語句的執(zhí)行效率,為盡量提高SQL語句的執(zhí)行效率,在書寫SQL語句時(shí)應(yīng)注意以下幾點(diǎn):

1)建立分區(qū)后,減少全表掃描,而要分區(qū)查詢;

2)對(duì)于需要經(jīng)常進(jìn)行查詢的表,可以通過建立索引減少SQL語句的執(zhí)行;

3)將多個(gè)常用表放在一個(gè)數(shù)據(jù)塊里;

4)在查詢時(shí),對(duì)于需要連接的查詢要有充分的連接條件。

Oracle數(shù)據(jù)庫系統(tǒng)性能優(yōu)化與調(diào)整是一個(gè)需要通過不斷摸索、總結(jié)的過程,在實(shí)踐中,必須先了解影響數(shù)據(jù)庫系統(tǒng)性能的因素,針對(duì)這些不同的因素采取不同的有效措施予以調(diào)整,同時(shí)也需要我們采取更加先進(jìn)的技術(shù)來對(duì)數(shù)據(jù)庫進(jìn)行調(diào)優(yōu),使得數(shù)據(jù)庫系統(tǒng)獲得最優(yōu)性能。

參考文獻(xiàn)

[1]蓋國強(qiáng),馮春培.葉梁等.Oracle數(shù)據(jù)庫性能優(yōu)化[M].人民郵電出版社,2005.

[2]魏亞楠,宋義秋.oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)的性能優(yōu)化[J].制造業(yè)自動(dòng)化,201O.

[3]王浩,溫斌.淺談Oracle數(shù)據(jù)庫的性能調(diào)優(yōu)[J].電腦知識(shí)與技術(shù),2011.

[4]仇道霞,陸偉,侯曉輝.Oracle數(shù)據(jù)庫性能調(diào)整優(yōu)化[J].山東輕工業(yè)學(xué)院學(xué)報(bào)(自然科學(xué)版),2010.

[5]孫富偉,晏斌.Oracle數(shù)據(jù)庫優(yōu)化策略的探討與研究[J].河南科技,2010.

北碚区| 德保县| 囊谦县| 彭阳县| 平乐县| 靖西县| 太仆寺旗| 融水| 青川县| 馆陶县| 清远市| 宽城| 溧水县| 邵阳市| 托里县| 磐安县| 永川市| 通州区| 沁阳市| 正阳县| 巴青县| 桐梓县| 襄樊市| 柘荣县| 新绛县| 永平县| 南昌市| 南涧| 衡阳县| 广德县| 石屏县| 金华市| 谢通门县| 舞阳县| 锡林郭勒盟| 沙河市| 黎川县| 桂东县| 吴堡县| 湟中县| 兰州市|