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

        ?

        Oracle數(shù)據(jù)庫(kù)性能調(diào)整與優(yōu)化技術(shù)探討

        2013-04-29 00:00:00任艷
        中國(guó)新通信 2013年2期

        【摘要】Oracle數(shù)據(jù)庫(kù)是當(dāng)前應(yīng)用最廣泛的大型數(shù)據(jù)庫(kù),隨著數(shù)據(jù)庫(kù)數(shù)據(jù)量的增大、并發(fā)用戶數(shù)量增多,系統(tǒng)常常出現(xiàn)吞吐量降低,響應(yīng)時(shí)間變長(zhǎng)的性能問(wèn)題,如何有效優(yōu)化、調(diào)整數(shù)據(jù)庫(kù)性能,避免系統(tǒng)瓶頸,是保證Oracle數(shù)據(jù)庫(kù)高效運(yùn)行的基礎(chǔ)。Oracle數(shù)據(jù)庫(kù)系統(tǒng)性能優(yōu)化、調(diào)整是一項(xiàng)復(fù)雜的系統(tǒng)工程,貫穿于系統(tǒng)的整個(gè)生存周期中。

        【關(guān)鍵詞】性能調(diào)整與優(yōu)化內(nèi)存優(yōu)化磁盤I/O應(yīng)用程序

        一、數(shù)據(jù)庫(kù)系統(tǒng)性能評(píng)價(jià)指標(biāo)

        影響數(shù)據(jù)庫(kù)性能的要素有很多,具體表現(xiàn)為應(yīng)用程序、系統(tǒng)資源、并發(fā)數(shù)量等方面。一般情況下,主要通過(guò)以下性能指標(biāo)來(lái)評(píng)價(jià)數(shù)據(jù)庫(kù)系統(tǒng)的性能:系統(tǒng)響應(yīng)時(shí)間、系統(tǒng)吞吐量、數(shù)據(jù)庫(kù)的命中率以及內(nèi)存和I/O的使用情況。

        1.1 系統(tǒng)吞吐量

        系統(tǒng)吞吐量是指單位時(shí)間內(nèi)系統(tǒng)能處理的事物數(shù)量,對(duì)于數(shù)據(jù)庫(kù)系統(tǒng),也就是單位時(shí)間內(nèi)處理的SQL語(yǔ)句數(shù)量。因此,數(shù)據(jù)庫(kù)系統(tǒng)的吞吐量(tps)=SQL語(yǔ)句執(zhí)行的數(shù)量/時(shí)間。提高系統(tǒng)的吞吐量可以通過(guò)提高單個(gè)時(shí)間內(nèi)系統(tǒng)執(zhí)行事物的數(shù)量和提高單個(gè)事物的執(zhí)行效率。

        1.2 響應(yīng)時(shí)間

        響應(yīng)時(shí)間是指用戶在提交業(yè)務(wù)操作后到數(shù)據(jù)庫(kù)反饋信息給用戶所花費(fèi)的總體時(shí)間。提高響應(yīng)時(shí)間的途徑有減少系統(tǒng)的服務(wù)時(shí)間和用戶等待時(shí)間,兩種途徑是矛盾的統(tǒng)一體,減少系統(tǒng)的響應(yīng)時(shí)間也就是提高系統(tǒng)的吞吐量,減少用戶等待時(shí)間就是要提高系統(tǒng)的并發(fā)量,在實(shí)際應(yīng)用中,要依據(jù)具體的應(yīng)用情況來(lái)確定優(yōu)化響應(yīng)時(shí)間的主要方面。

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

        數(shù)據(jù)庫(kù)命中率是數(shù)據(jù)庫(kù)性能的重要評(píng)價(jià)指標(biāo),主要包括數(shù)據(jù)庫(kù)緩沖區(qū)命中率和共享池命中率。緩沖區(qū)命中率決定了用戶需求的數(shù)據(jù)是否能在內(nèi)存中得到滿足,該比率等于高速緩存命中總數(shù)除以對(duì)高速緩存的查找總數(shù);共享池命中率決定了用戶提交的SQL語(yǔ)句是否需要進(jìn)行重新解析,該比率等于SQL語(yǔ)句的解析次數(shù)除以SQL語(yǔ)句總的執(zhí)行次數(shù)。通常情況,數(shù)據(jù)庫(kù)的命中率應(yīng)該在90%左右,低于這個(gè)值的系統(tǒng)均需要做出優(yōu)化和調(diào)整。

        1.4 內(nèi)存使用效率

        內(nèi)存使用效率主要體現(xiàn)在可共享內(nèi)存、永久性內(nèi)存和運(yùn)行時(shí)內(nèi)存這三者的分配使用上。內(nèi)存使用調(diào)整目標(biāo)主要有兩種,其一是集中精力解決可能產(chǎn)生最大利益的問(wèn)題,使利益最大化;其二是盡可能的減少系統(tǒng)的延遲和等待事物。

        1.5 磁盤I/O

        I/O是數(shù)據(jù)庫(kù)處理和產(chǎn)生數(shù)據(jù)必可少的步驟;I/O分為邏輯讀、邏輯寫、物理讀和物理寫,其中邏輯操作主要對(duì)象是內(nèi)存,物理操作的主要對(duì)象是磁盤,通過(guò)減少系統(tǒng)不必要的I/O次數(shù)可以提高系統(tǒng)的吞吐量,縮短系統(tǒng)響應(yīng)時(shí)間。其中磁盤I/O是影響數(shù)據(jù)庫(kù)性能最重要的方面,盡可能的減少磁盤I/O的次數(shù)是提高數(shù)據(jù)庫(kù)性能的主要手段。

        二、數(shù)據(jù)庫(kù)性能優(yōu)化技術(shù)

        2.1 內(nèi)存優(yōu)化

        Oracle的信息存儲(chǔ)在內(nèi)存和磁盤上,由于訪問(wèn)內(nèi)存比訪問(wèn)磁盤快得多,因此若能把盡可能多的數(shù)據(jù)存放在內(nèi)存中,就可以達(dá)到加快執(zhí)行速度、縮短響應(yīng)時(shí)間、減少磁盤I/O等目的。Oracle數(shù)據(jù)庫(kù)內(nèi)存優(yōu)化主要通過(guò)調(diào)整SGA內(nèi)存結(jié)構(gòu)的大小來(lái)提高系統(tǒng)性能,其中共享池和緩沖區(qū)高速緩存是SGA兩個(gè)最重要的優(yōu)化區(qū)域。

        (1)優(yōu)化共享池

        共享池由庫(kù)緩沖區(qū)和數(shù)據(jù)字典緩沖區(qū)組成,其庫(kù)緩沖區(qū)存放已經(jīng)解釋并執(zhí)行過(guò)的SQL語(yǔ)句和PL/SQL程序代碼及其分析、執(zhí)行計(jì)劃等信息;數(shù)據(jù)字典緩沖區(qū)主要存放數(shù)據(jù)庫(kù)對(duì)象信息以及用戶權(quán)限等信息。通過(guò)合理設(shè)置共享池的大小來(lái)確保大多數(shù)語(yǔ)句能夠在共享池中查找到它們自己的一個(gè)已分析版本,就可以提高語(yǔ)句分析和執(zhí)行的效率,降低資源消耗。數(shù)據(jù)庫(kù)管理員通過(guò)庫(kù)緩存命中率以及數(shù)據(jù)字典緩存命中率來(lái)檢查共享池設(shè)置是否合適。

        庫(kù)緩存命中率檢查方法為:

        Select(sum(pins-reloads))/sum(pins))“Lib Cache”from v$1ibrarycache;

        數(shù)據(jù)字典緩存命中率檢查方法為:

        Select sum (gets)”Gets”,sum (getmisses)“Misses”,sum(gets)/ (sum (gets)+sum (getmisses))“Hit Ratio”from v $rowcache;

        通常情況下,庫(kù)緩存命中率應(yīng)該高于99%,而數(shù)據(jù)字典緩存命中率應(yīng)該高于90%,否者需要調(diào)整SHARED-POOL-SIZE增加共享池大小。

        (2)優(yōu)化緩沖區(qū)高速緩存

        數(shù)據(jù)高速緩存(Data Buffer Cache)是用于緩存數(shù)據(jù)庫(kù)數(shù)據(jù)的內(nèi)存區(qū)域。從內(nèi)存讀數(shù)據(jù)和從磁盤讀數(shù)據(jù),在訪問(wèn)速度上是指數(shù)級(jí)的差別,緩沖區(qū)高速緩存越大,Oracle從內(nèi)存讀的數(shù)據(jù)就越多,磁盤的I/O就越少,系統(tǒng)性能就越好。數(shù)據(jù)庫(kù)管理員通過(guò)下述語(yǔ)句來(lái)查看數(shù)據(jù)庫(kù)數(shù)據(jù)緩沖區(qū)的使用情況:

        P=1-(physical reads/(db block gets+consistent gets))。

        SELECT name,value FROM v$sysstat

        WHERE name IN (‘db block gets’,‘consistent gets’,‘physical reads’):

        這個(gè)命中率應(yīng)該在90%以上,否則需要通過(guò)調(diào)整DB CACHE SIZE來(lái)增加Data Buffer Cache大小。

        (3)調(diào)整重做日志緩沖區(qū)

        重做日志緩沖區(qū)如果分配太小,會(huì)導(dǎo)致沒(méi)有足夠的空間來(lái)放重做日志而等待,LGWR進(jìn)程會(huì)頻繁將LOGBUFFER中的數(shù)據(jù)寫入磁盤增加I/O的次數(shù),影響系統(tǒng)性能。重做日志的任何瓶頸都可能導(dǎo)致系統(tǒng)中所有進(jìn)程的性能問(wèn)題,為了確保系統(tǒng)不會(huì)發(fā)生這類情況,應(yīng)該隨時(shí)監(jiān)控重做日志的競(jìng)爭(zhēng)情況。觀察重做日志緩沖區(qū)的工作情況的方法:

        select name,Value from v$sysstat where name=’redo bufier allocation retrids’

        “redo buffer allocation retrids”表示進(jìn)程申請(qǐng)寫入重做日志緩沖區(qū)失敗后的重試次數(shù),正常情況下應(yīng)該為0,否則應(yīng)該調(diào)整LOG BUFFER參數(shù)增加緩沖區(qū)的大小。

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

        對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),磁盤I/O操作是數(shù)據(jù)庫(kù)性能最重要的方面,為了避免與I/O相關(guān)的性能瓶頸,監(jiān)控磁盤I/O并保持其優(yōu)化非常重要。影響磁盤I/O性能的主要原因有磁盤競(jìng)爭(zhēng)、I/O次數(shù)過(guò)多和數(shù)據(jù)塊空間的分配管理等。具體的優(yōu)化I/O的方法包括以下幾方面。

        (1)常使用的對(duì)象產(chǎn)生I/O爭(zhēng)用的機(jī)會(huì)較多,應(yīng)將訪問(wèn)量較大的數(shù)據(jù)文件放在獨(dú)立磁盤上,同一個(gè)表空間的多個(gè)數(shù)據(jù)文件應(yīng)盡可能地放在不同的磁盤上,為索引創(chuàng)建單獨(dú)的表空間,并將表和索引分開(kāi)在不同的表空間;(2)在內(nèi)存中修改過(guò)的數(shù)據(jù)先寫入重做日志文件中,重做日志文件要足夠大,要與數(shù)據(jù)文件存放在不同的磁盤上,減少對(duì)磁盤的競(jìng)爭(zhēng),重做日志文件分為幾個(gè)組,按順序循環(huán)寫入;(3)Oracle的文件和操作系統(tǒng)文件應(yīng)盡可能地放在不同的磁盤上,以減小I/O爭(zhēng)用的概率;(4)最好使用目前較流行的廉價(jià)磁盤冗余陣列(raid),它能自動(dòng)分離不同類型、訪問(wèn)頻率的數(shù)據(jù)庫(kù)文件,減小I/O進(jìn)程之間的競(jìng)爭(zhēng),優(yōu)化數(shù)據(jù)庫(kù)性能;(5)創(chuàng)建回滾段及其專用的表空間,以從系統(tǒng)操作的失敗中得到數(shù)據(jù)的恢復(fù),從而減小I/O進(jìn)程之間的競(jìng)爭(zhēng),防止空間競(jìng)爭(zhēng)影響事務(wù)的完成;(6)單獨(dú)創(chuàng)建用戶數(shù)據(jù)表空間,且要與系統(tǒng)表空間(system)分開(kāi)磁盤存放,創(chuàng)建臨時(shí)表空間用于排序操作,盡可能防止數(shù)據(jù)庫(kù)碎片存在于多個(gè)表空間中。

        2.3 應(yīng)用程序優(yōu)化

        系統(tǒng)中80%的性能問(wèn)題實(shí)際上與oracle數(shù)據(jù)庫(kù)的配置無(wú)關(guān),而是由于應(yīng)用程序中SQL語(yǔ)句的拙劣設(shè)計(jì)和糟糕實(shí)現(xiàn)引起。本節(jié)從與SQL執(zhí)行效率密切相關(guān)的幾個(gè)方面來(lái)介紹應(yīng)用程序優(yōu)化技術(shù),包括索引、SQL語(yǔ)句實(shí)現(xiàn)、使用存儲(chǔ)過(guò)程等。

        1.創(chuàng)建適當(dāng)?shù)乃饕?/p>

        建立“適當(dāng)”的索引是實(shí)現(xiàn)查詢優(yōu)化的首要前提。如果通過(guò)索引來(lái)訪問(wèn)數(shù)據(jù)庫(kù),可以大大減少對(duì)大型表的全表掃描,從而減少I/O的開(kāi)銷。當(dāng)使用索引時(shí),應(yīng)該注意以下原則:①不對(duì)小型表創(chuàng)建索引;②為經(jīng)常檢索大表中少于15%的行創(chuàng)建索引;③有很多空值并且查詢會(huì)涉及到空值的列不太適合索引;④不對(duì)大型字段創(chuàng)建索引;⑤索引不是越多越好,特別是大量從來(lái)或者幾乎不用的索引,對(duì)系統(tǒng)只有損害;⑥單列索引不如復(fù)合索引有效率;⑦為用于多表連接的字段加上索引,為經(jīng)常進(jìn)行連接的表使用簇;⑧將表和索引建立在不同的表空間內(nèi),不將應(yīng)用數(shù)據(jù)的對(duì)象存放到system表空間里,并確保數(shù)據(jù)表空間和索引表空間置于不同的物理磁盤。實(shí)際應(yīng)用中,索引的建立必須慎重,要注意索引導(dǎo)致的查詢語(yǔ)句性能的提高與更新數(shù)據(jù)時(shí)性能的降低之間的平衡。

        2.SOL語(yǔ)句調(diào)優(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的平衡。

        SQL語(yǔ)句優(yōu)化原則:①采用綁定變量;②選擇聯(lián)合查詢的連接次序;③避免相關(guān)子查詢;④適當(dāng)使用臨時(shí)表來(lái)加速查詢;⑤消除對(duì)大數(shù)據(jù)表行數(shù)據(jù)的順序存??;⑥正確使用UNION和UNION ALL;⑦使用表的別名;⑧正確使用WHERE子句;⑨建立“適當(dāng)”的索引;⑩正確使用NULL、IN、EXIST、OR。

        3.使用存儲(chǔ)過(guò)程

        Oracle的存儲(chǔ)過(guò)程是SQL語(yǔ)句和可選控制流語(yǔ)句的預(yù)編譯集合,以一個(gè)名稱存儲(chǔ)作為一個(gè)單元處理,能完成一定功能并且存儲(chǔ)在Server端的PL/SQL的集合。相對(duì)于應(yīng)用程序的過(guò)程、函數(shù)而言,把SQL命令存儲(chǔ)在Server端。使用存儲(chǔ)過(guò)程,應(yīng)用程序不必再包含多個(gè)網(wǎng)絡(luò)操作的SQL語(yǔ)句去執(zhí)行數(shù)據(jù)庫(kù)服務(wù)器操作,而是簡(jiǎn)單調(diào)用存儲(chǔ)過(guò)程,在網(wǎng)絡(luò)上傳輸?shù)闹皇钦{(diào)用過(guò)程的名字和輸出結(jié)果,這樣就可減少大量的網(wǎng)絡(luò)I/O。

        三、小結(jié)

        Oracle 10g數(shù)據(jù)庫(kù)系統(tǒng)性能優(yōu)化與調(diào)整是一個(gè)復(fù)雜、繁瑣的系統(tǒng)工程,貫穿于數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)的整個(gè)過(guò)程。數(shù)據(jù)庫(kù)系統(tǒng)配置的調(diào)整,包括內(nèi)存結(jié)構(gòu)調(diào)整、磁盤I/O調(diào)整以及應(yīng)用程序優(yōu)化等,直接決定了整個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的性能,應(yīng)該利用各種性能優(yōu)化手段進(jìn)行反復(fù)的調(diào)整、比較以消除瓶頸,獲得系統(tǒng)最優(yōu)性能。

        參考文獻(xiàn)

        [1]羅瑞明. Oracle數(shù)據(jù)庫(kù)的性能優(yōu)化方法研究.信息安全與技術(shù),2012(5).

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

        [3]李振宇. Oracle數(shù)據(jù)庫(kù)的優(yōu)化及方案.科技信息. 2010(13).

        日本一区二区三区精品不卡| 日韩国产成人精品视频| 白白视频在线免费观看| 亚洲一区二区三区成人网| 国产亚洲综合一区二区三区| 亚洲av日韩av高潮潮喷无码| 91国在线啪精品一区| 亚洲综合伊人久久综合| 日韩乱码人妻无码系列中文字幕| 闺蜜张开腿让我爽了一夜| 亚洲综合中文字幕乱码在线| 美女扒开内裤露黑毛无遮挡| 国产亚洲精品视频一区二区三区| 玩中年熟妇让你爽视频| 国产三级在线视频播放| 国产黑色丝袜在线观看网站91| 少妇人妻中文久久综合| 曰本大码熟中文字幕| 99精品成人片免费毛片无码| 免费人妻精品区一区二区三| 97色伦图片97综合影院| 波多野结衣乳巨码无在线| 男性一插就想射是因为啥| 熟女少妇av一区二区三区| 国产成人精品无码一区二区三区| 伊人色综合九久久天天蜜桃| 亚洲色欲色欲欲www在线| 久久热免费最新精品视频网站| 久久久国产打桩机| 自拍欧美日韩| 久久精品亚洲乱码伦伦中文| 在厨房拨开内裤进入毛片| 看国产黄大片在线观看| 日韩无码尤物视频| 亚洲国产精品久久无人区| 国产尤物av尤物在线观看| 传媒在线无码| 久久久噜噜噜久久熟女| 亚洲日韩激情无码一区| 久久久久无码精品亚洲日韩| 亚洲第一页综合av免费在线观看|