亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Oracle數(shù)據(jù)庫(kù)系統(tǒng)的優(yōu)化與性能調(diào)整研究

        2012-05-09 03:10劉哲
        綠色科技 2012年5期
        關(guān)鍵詞:緩沖區(qū)磁盤語(yǔ)句

        劉哲

        (武漢紡織大學(xué),湖北 武漢430200)

        1 引言

        大型關(guān)系數(shù)據(jù)庫(kù)Oracle已經(jīng)廣泛應(yīng)用于各行各業(yè),如政府、交通、公安、電信、金融、能源等部門,并已逐漸成為企業(yè)信息化建設(shè)的重要數(shù)據(jù)庫(kù)平臺(tái),但隨著Oracle數(shù)據(jù)庫(kù)規(guī)模的擴(kuò)大,數(shù)據(jù)庫(kù)用戶人數(shù)的增加,數(shù)據(jù)庫(kù)性能問(wèn)題越來(lái)越突出。因此,有必要對(duì)Oracle數(shù)據(jù)庫(kù)性能進(jìn)行調(diào)整與優(yōu)化,使之在滿足需求條件下,系統(tǒng)性能達(dá)到最佳和系統(tǒng)開(kāi)銷最小。

        2 性能優(yōu)化目標(biāo)

        2.1 提高系統(tǒng)吞吐量

        數(shù)據(jù)庫(kù)吞吐量指在單位時(shí)間內(nèi)數(shù)據(jù)庫(kù)所能完成的SQL語(yǔ)句事務(wù)數(shù)量,吞吐量=事務(wù)量/時(shí)間,通常用TPS(每秒鐘的事務(wù)量)來(lái)表示。對(duì)某些特定的系統(tǒng)而言,系統(tǒng)調(diào)整最終要的目的可能就是對(duì)系統(tǒng)吞吐量的調(diào)整。

        2.2 縮短響應(yīng)時(shí)間

        響應(yīng)時(shí)間是指從用戶提交SQL語(yǔ)句到數(shù)據(jù)庫(kù)返回結(jié)果集的第一行數(shù)據(jù)所需要的時(shí)間,縮短響應(yīng)時(shí)間可以通過(guò)減小系統(tǒng)服務(wù)時(shí)間或用戶等待時(shí)間來(lái)實(shí)現(xiàn),通過(guò)使用ms來(lái)表示,通過(guò)縮短響應(yīng)時(shí)間,既能減少用戶請(qǐng)求的處理時(shí)間,又能提高系統(tǒng)資源利用率。

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

        Oracle數(shù)據(jù)庫(kù)將數(shù)據(jù)儲(chǔ)存在磁盤和內(nèi)存中,想要往Oracle中寫(xiě)入和讀取數(shù)據(jù)基本上都會(huì)涉及到I/O操作,通過(guò)對(duì)磁盤合理的進(jìn)行規(guī)劃,利用高速緩存技術(shù),可以提高系統(tǒng)吞吐量,縮短用戶響應(yīng)時(shí)間,盡可能有效地利用系統(tǒng)物理內(nèi)存而盡量避免或推遲使用磁盤I/O操作。

        2.4 提高數(shù)據(jù)庫(kù)多個(gè)指標(biāo)的命中率

        Oracle用戶進(jìn)程所需的所有數(shù)據(jù)都是經(jīng)過(guò)緩沖區(qū)高速緩存來(lái)存取的。用戶對(duì)數(shù)據(jù)的需求能否在內(nèi)存中得到滿足,給出快速的響應(yīng),可用緩沖區(qū)高速緩存命中率來(lái)衡量。

        2.5 合理使用內(nèi)存

        在大量并發(fā)用戶數(shù)下,若Oracle內(nèi)存尺寸不夠會(huì)降低程序的處理效率,延緩數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間,內(nèi)存是否合理使用,一般可以從使投資得到最大回報(bào)和使?fàn)幱脺p到最小這兩個(gè)指標(biāo)來(lái)判斷,通過(guò)合理使用內(nèi)存,可以大大提高系統(tǒng)性能。

        2.6 減小磁盤排序

        當(dāng)用戶提交的SQL語(yǔ)句含有聚合函數(shù)或者有排序時(shí),這些排序可能在內(nèi)存中進(jìn)行,也可能在物理磁盤上進(jìn)行。由于物理磁盤自身結(jié)構(gòu)的原因,其讀寫(xiě)速度遠(yuǎn)遠(yuǎn)慢于內(nèi)存讀寫(xiě),因此一個(gè)優(yōu)化的原則是盡可能減少物理磁盤排序操作。

        3 影響Oracle性能的因素

        影響Oracle數(shù)據(jù)性能的因素有很多,如操作系統(tǒng),CPU性能,內(nèi)存分配不合理,Oracle配置,I/O沖突,網(wǎng)絡(luò)速度低以及SQL使用常見(jiàn)錯(cuò)誤等都會(huì)影響數(shù)據(jù)庫(kù)的性能。

        (1)操作系統(tǒng)。Oracle數(shù)據(jù)庫(kù)服務(wù)器很大程度上依賴于運(yùn)行服務(wù)器的操作系統(tǒng),操作系統(tǒng)配置不合理會(huì)直接降低Oracle性能。

        (2)CPU占用過(guò)高。CPU是服務(wù)器中一個(gè)重要的資源,CPU資源被其它應(yīng)用占用或被某個(gè)數(shù)據(jù)庫(kù)事務(wù)占用,會(huì)導(dǎo)致其它數(shù)據(jù)庫(kù)事務(wù)運(yùn)行停滯,而使數(shù)據(jù)庫(kù)響應(yīng)遲鈍,比如:空閑時(shí),CPU占用率超過(guò)90%,則說(shuō)明Oracle服務(wù)器CPU資源不足,低效率的SQL語(yǔ)句、鎖沖突、SQL語(yǔ)句的重解析等原因都會(huì)引起CPU資源不足。

        (3)I/O沖突。由于磁盤在同一時(shí)刻只能滿足一個(gè)進(jìn)程的需要,當(dāng)多個(gè)進(jìn)程同時(shí)訪問(wèn)同一個(gè)磁盤時(shí),會(huì)引起讀寫(xiě)盤沖突,進(jìn)而降低整個(gè)系統(tǒng)的速度。

        (4)Oracle配置。每一個(gè)Oracle實(shí)例都是由一組Oracle后臺(tái)進(jìn)程和系統(tǒng)全局區(qū)的一個(gè)內(nèi)存區(qū)所組成的,正確調(diào)整Oracle配置將會(huì)對(duì)系統(tǒng)性能產(chǎn)生重大的影響。

        (5)內(nèi)存分配不合理。多數(shù)操作系統(tǒng)使用虛擬內(nèi)存來(lái)擴(kuò)大內(nèi)存,它實(shí)際上屬于磁盤空間。當(dāng)實(shí)際的內(nèi)存空間不能滿足應(yīng)用軟件的要求時(shí),操作系統(tǒng)就將這部分的磁盤空間與內(nèi)存中的信息進(jìn)行頁(yè)面替換,這將引起大量的磁盤I/O操作,使整個(gè)服務(wù)器的性能下降。調(diào)整操作系統(tǒng)的主要目的就是減少內(nèi)存交換,減少分頁(yè),使SGA留駐內(nèi)存。

        (6)網(wǎng)絡(luò)速度低。網(wǎng)絡(luò)的帶寬會(huì)在一定程度上影響系統(tǒng)的整體性能,網(wǎng)絡(luò)速度過(guò)低會(huì)增加網(wǎng)絡(luò)如負(fù)荷量,從而降低數(shù)據(jù)庫(kù)系統(tǒng)的吞吐量并延長(zhǎng)用戶響應(yīng)時(shí)間。

        (7)SQL使用常見(jiàn)錯(cuò)誤。配置和數(shù)據(jù)遷移的錯(cuò)誤,大量遞歸SQL語(yǔ)句的存在,長(zhǎng)時(shí)間的全表掃描,一些數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)置不合理,重做日志文件的不合理設(shè)置I/O設(shè)備的不合理的規(guī)劃,非標(biāo)準(zhǔn)參數(shù)的使用,執(zhí)行效率很差的SQL語(yǔ)句,游標(biāo)和共享池的錯(cuò)誤使用。

        4 性能優(yōu)化與調(diào)整技術(shù)

        4.1 調(diào)整優(yōu)化數(shù)據(jù)庫(kù)

        要在良好的Oracle方案中實(shí)現(xiàn)最優(yōu)的性能,最關(guān)鍵的是要有一個(gè)很好的數(shù)據(jù)庫(kù)設(shè)計(jì)方案。這一部分應(yīng)在開(kāi)發(fā)信息系統(tǒng)之前完成。盡管Oracle系統(tǒng)本身己經(jīng)提供了若干種對(duì)系統(tǒng)性能進(jìn)行調(diào)節(jié)的技術(shù),但是,如果數(shù)據(jù)庫(kù)設(shè)計(jì)本身就有問(wèn)題特別是結(jié)構(gòu)設(shè)計(jì),那么再怎么對(duì)數(shù)據(jù)庫(kù)進(jìn)行調(diào)整和優(yōu)化都達(dá)不到很好的效果。因此提高數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的性能首先應(yīng)從數(shù)據(jù)庫(kù)設(shè)計(jì)開(kāi)始。

        數(shù)據(jù)庫(kù)設(shè)計(jì)分為邏輯設(shè)計(jì)和物理設(shè)計(jì)。邏輯設(shè)計(jì)包括使用數(shù)據(jù)庫(kù)組件為業(yè)務(wù)需求和數(shù)據(jù)建模,而無(wú)須考慮如何或在哪里物理存儲(chǔ)這些數(shù)據(jù)。物理設(shè)計(jì)包括將邏輯設(shè)計(jì)映射到物理媒體上、利用可用的硬件和軟件功能盡可能快地對(duì)數(shù)據(jù)進(jìn)行物理訪問(wèn)和維護(hù),包括索引技術(shù)。邏輯設(shè)計(jì)主要是消除冗余數(shù)據(jù),提高數(shù)據(jù)的吞吐速度,保證數(shù)據(jù)的完整性,但對(duì)于多表之間關(guān)聯(lián)查詢(尤其是大數(shù)據(jù)表),將會(huì)影響其性能。因此,在物理設(shè)計(jì)時(shí)需要折衷考慮,根據(jù)業(yè)務(wù)規(guī)則和關(guān)聯(lián)表的數(shù)據(jù)量大小、數(shù)據(jù)項(xiàng)訪問(wèn)頻度,對(duì)關(guān)聯(lián)查詢頻繁的數(shù)據(jù)表適當(dāng)提高數(shù)據(jù)冗余設(shè)計(jì)。

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

        Oracle的信息存儲(chǔ)在內(nèi)存和磁盤上,由于訪問(wèn)內(nèi)存比訪問(wèn)磁盤快得多,在大量并發(fā)用戶數(shù)下,如果Oracle內(nèi)存尺寸不夠會(huì)降低程序的處理效率,延緩數(shù)據(jù)庫(kù)的響應(yīng)時(shí)間,提高數(shù)據(jù)庫(kù)性能需要設(shè)置合適的內(nèi)存尺寸,Oracle內(nèi)存包括系統(tǒng)全局區(qū)(SGA)和程序全局(PGA)。

        4.2.1 調(diào)整SGA的大小

        根據(jù)數(shù)據(jù)庫(kù)運(yùn)行狀況重新調(diào)整SGA的大小,對(duì)每個(gè)節(jié)點(diǎn)修改SGA大小的方法如下:

        SQL>alter system set sga_target=300mscope=both sid='***'。

        4.2.2 提高共享池性能

        共享池主要是用來(lái)存放最近使用過(guò)的SQL語(yǔ)句,共享池內(nèi)存分配算法保證了數(shù)據(jù)字典數(shù)據(jù)比庫(kù)緩沖區(qū)數(shù)據(jù)在內(nèi)存停留時(shí)間更長(zhǎng),命中率更高,應(yīng)優(yōu)先調(diào)整庫(kù)緩沖區(qū)。

        通過(guò)調(diào)整參數(shù)SHARED POOL SIZE的值,可以根據(jù)實(shí)際情況對(duì)每個(gè)節(jié)點(diǎn)共享池的大小進(jìn)行調(diào)整;為了提高共享池命中率,可以使用代碼重用方法;對(duì)于比較大的對(duì)象,如自定義的過(guò)程與包,在載人共享池以及硬解析的過(guò)程中需要共享池付出很大的代價(jià),把重要的大對(duì)象保持在內(nèi)存中,可以大大提高共享池性能。

        4.2.3 優(yōu)化數(shù)據(jù)緩沖區(qū)高速緩存性能

        為減少系統(tǒng)磁盤I/O開(kāi)銷,應(yīng)調(diào)整數(shù)據(jù)緩沖區(qū)的尺寸,使服務(wù)器進(jìn)程盡量在緩沖區(qū)中找到所需的數(shù)據(jù),盡量減少等待數(shù)據(jù)塊或空閑緩沖區(qū)的時(shí)間。加大Buffer Cache的大小,可以通過(guò)調(diào)整DB_ACHE_SIZE參數(shù)的值增大Buffer Cache。使用多個(gè)緩沖池,Keep池中數(shù)據(jù)傾向于一直保存,Recycle池中的數(shù)據(jù)傾向于即時(shí)老化,而Default池則存放未指定存儲(chǔ)池的數(shù)據(jù),通過(guò)使用多個(gè)緩沖池提高Buffer Cache的命中率。

        4.3 調(diào)整優(yōu)化磁盤I/O

        數(shù)據(jù)庫(kù)的數(shù)據(jù)最終要存儲(chǔ)在物理磁盤上。磁盤I/O操作是數(shù)據(jù)庫(kù)性能最重要的方面,它是系統(tǒng)消耗最大的Oracle數(shù)據(jù)庫(kù)操作。為了避免與I/O相關(guān)的性能瓶頸,監(jiān)控磁盤I/O并對(duì)其進(jìn)行調(diào)整非常重要。影響磁盤UO的性能的主要原因有磁盤競(jìng)爭(zhēng)、I/O次數(shù)過(guò)多和數(shù)據(jù)塊空間的分配管理。

        4.4 SQL優(yōu)化

        SQL語(yǔ)句優(yōu)化的實(shí)質(zhì)就是在結(jié)果正確的前提下,用優(yōu)化器可以識(shí)別的語(yǔ)句,充分利用索引來(lái)減少表掃描的I/O次數(shù),盡量避免表搜索的發(fā)生.優(yōu)化的目的就是將性能低下的SQL語(yǔ)句轉(zhuǎn)換成目的相同的、性能優(yōu)異的SQL語(yǔ)句,使數(shù)據(jù)查找的路徑最簡(jiǎn)化,并盡量保持處理器時(shí)間和I/O時(shí)間的平衡。

        盡量減少對(duì)數(shù)據(jù)庫(kù)的查詢次數(shù),對(duì)幾個(gè)表查詢時(shí)FROM子句的順序,按照由內(nèi)及外的訪問(wèn)順序應(yīng)把可篩選出較少記錄的表放在前面,執(zhí)行時(shí)最先查找出這個(gè)表的幾個(gè)記錄,再和其他表的記錄相連接;為了充分利用庫(kù)緩沖區(qū)的SQL解析信息,對(duì)于經(jīng)常運(yùn)行條件子句變量值不同的SQL語(yǔ)句,應(yīng)將這些變量改為統(tǒng)一的綁定變量;避免不帶任何where條件的SQL語(yǔ)句的執(zhí)行,使用order by,group by,union等條件的SQL語(yǔ)句會(huì)對(duì)查詢完的數(shù)據(jù)進(jìn)行排序,增大了PGA或TEMP的負(fù)擔(dān),優(yōu)化這些語(yǔ)句時(shí)可在使用這些條件的列上加上有序索引;對(duì)SQL語(yǔ)句的索引進(jìn)行優(yōu)化,索引的目的是提高數(shù)據(jù)訪問(wèn)速度,Oracle的索引都是獨(dú)立于與之相關(guān)的表或簇中的數(shù)據(jù)的。如果對(duì)索引進(jìn)行良好的配置和優(yōu)化,則可以大大降低數(shù)據(jù)庫(kù)中數(shù)據(jù)文件的I/O操作并提高系統(tǒng)性能和響應(yīng)速度。

        4.5 數(shù)據(jù)庫(kù)優(yōu)化實(shí)驗(yàn)

        選取約為4G左右的東風(fēng)日產(chǎn)管理系統(tǒng)作為數(shù)據(jù)庫(kù)優(yōu)化實(shí)例,該數(shù)據(jù)庫(kù)運(yùn)行在HP DL380G7 583917-B21服務(wù)器上,使用Linux操作系統(tǒng),優(yōu)化結(jié)果如圖1。從圖1可以看出,數(shù)據(jù)庫(kù)經(jīng)過(guò)調(diào)整優(yōu)化數(shù)據(jù)庫(kù)、調(diào)整與優(yōu)化內(nèi)存、調(diào)整與優(yōu)化I/O和SQL優(yōu)化后,響應(yīng)時(shí)間變得越來(lái)越短,系統(tǒng)性能得到逐步提高。

        圖1 性能調(diào)優(yōu)

        5 結(jié)語(yǔ)

        隨著Oracle數(shù)據(jù)庫(kù)規(guī)模的擴(kuò)大,用戶數(shù)量的增加,Oracle數(shù)據(jù)庫(kù)性能問(wèn)題越來(lái)越突出,Oracle數(shù)據(jù)庫(kù)的性能優(yōu)化涉及的方面很廣,優(yōu)化與調(diào)整是一個(gè)需要通過(guò)不斷摸索、總結(jié)的過(guò)程,在實(shí)踐中,必須先了解影響數(shù)據(jù)庫(kù)系統(tǒng)性能的因素,針對(duì)這些不同的因素選擇合理的優(yōu)化調(diào)整策略予以調(diào)整,同時(shí)也需要采取更加先進(jìn)的技術(shù)來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行調(diào)優(yōu),使得數(shù)據(jù)庫(kù)系統(tǒng)獲得最優(yōu)性能。

        [1]蓋國(guó)強(qiáng).循序漸進(jìn)Oracle數(shù)據(jù)庫(kù)管理、優(yōu)化與備份恢復(fù)[M].北京:人民郵電出版社,2007.

        [2]趙夢(mèng)勤,李秀蘭.ORACLE數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的優(yōu)化策略[J].計(jì)算機(jī)工程與應(yīng)用.2003(27):217~218.

        [3]潘 敏.Oracle數(shù)據(jù)庫(kù)性能優(yōu)化的分析[J].電腦編程技巧與維護(hù),2010(20):21~22.

        [4]韓云波.Oracle性能調(diào)整技術(shù)研究[J].電腦知識(shí)與技術(shù),2010(7):65~66.

        猜你喜歡
        緩沖區(qū)磁盤語(yǔ)句
        它的好 它的壞 詳解動(dòng)態(tài)磁盤
        創(chuàng)建虛擬機(jī)磁盤方式的選擇
        解決Windows磁盤簽名沖突
        串行連續(xù)生產(chǎn)線的可用度與緩沖庫(kù)存控制研究*
        基于ARC的閃存數(shù)據(jù)庫(kù)緩沖區(qū)算法①
        Windows系統(tǒng)下動(dòng)態(tài)磁盤卷的分析與研究
        初涉緩沖區(qū)
        我喜歡
        冠詞缺失與中介語(yǔ)句法損傷研究
        本期導(dǎo)讀
        国产极品美女高潮无套| 在线看片国产免费不卡| 蜜桃一区二区三区自拍视频| 蜜桃视频羞羞在线观看| 一本色道久久爱88av| 少妇被爽到高潮动态图| 精品一区二区三区影片| 特级国产一区二区三区| 97精品国产一区二区三区| 一个人在线观看免费视频www| 天天中文字幕av天天爽| 久久91精品国产一区二区| 亚洲一区av在线观看| 亚洲国产精品久久久久秋霞1 | 国产日产免费在线视频| 校园春色综合久久精品中文字幕| 最近中文字幕完整版免费| 国产美女在线精品亚洲二区| 丝袜美腿诱惑一二三区| 本道天堂成在人线av无码免费 | 中文字幕av人妻一区二区| 日韩精品人妻中文字幕有码在线| 国产精品成人久久电影| a级福利毛片| 国产黄色一区二区三区,| 国产精品videossex久久发布 | 国产精品视频白浆免费看| 国色天香社区视频在线| 三上悠亚av影院在线看| 国产一区二区三区高清视频| 9久久婷婷国产综合精品性色| 高清破外女出血av毛片| 婷婷综合缴情亚洲狠狠| 中文字幕有码久久高清| 在线看无码的免费网站| 亚洲免费黄色| 国产一区二区三区蜜桃| 国内少妇毛片视频| 亚州综合激情另类久久久| 亚洲一区二区三区新视频| 国色天香社区视频在线|