Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第1頁
Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第2頁
Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第3頁
Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

Oracle數(shù)據(jù)庫性能優(yōu)化要提高應(yīng)用系統(tǒng)的性能,在維持現(xiàn)有硬件平臺不變的情況下,主要采用的方法由以下幾種:調(diào)整操作系統(tǒng)參數(shù),提高操作系統(tǒng)的管理性能;調(diào)整數(shù)據(jù)庫管理系統(tǒng)的參數(shù),提高數(shù)據(jù)庫管理系統(tǒng)的性能;修改應(yīng)用程序,提高應(yīng)用程序的運(yùn)行效率。一、ORACLE數(shù)據(jù)庫的內(nèi)存結(jié)構(gòu)本文將著重對SGA的結(jié)構(gòu)進(jìn)行介紹:SGA通常又被稱作SharedGlobalArea,包括以下幾個共享區(qū)域:數(shù)據(jù)緩存(theDatabasebuffercache)數(shù)據(jù)緩存存放從數(shù)據(jù)庫文件中讀取的數(shù)據(jù),可分為剩余緩存(Freebuffer)、正在使用的緩存(Pinnedbuffer)、已使用緩存(Dirtybuffer)。日志緩存(redologbuffer)存放數(shù)據(jù)庫已改變的信息。共享存儲池(sharedpool)共享存儲池主要由三個方面構(gòu)成:LibrarycacheLibrarycache包括共享SQL區(qū)、用戶自有SQL區(qū)、PL/SQL過程和程序包及控制結(jié)構(gòu);DictionaryCache存放數(shù)據(jù)庫字典信息,如:表及視圖名、列名及數(shù)據(jù)類型、各用戶的存取權(quán)限;Controlstructures

請求及響應(yīng)隊列(requestandresponsequeues)(僅用于多線索模式)其他(othermiscellaneousinformation)二、ORACLE內(nèi)存的工作機(jī)制當(dāng)用戶請求被接受后,ORACLE的內(nèi)存分配將分以下幾個步驟進(jìn)行:1.首先檢查共享SQL區(qū)有無該SQL語句,如有在使用該SQL區(qū)執(zhí)行用戶的SQL語句(稱作一次librarycachehit),否則為該SQL語句分配共享SQL區(qū)(稱作一次librarycachemiss),同時為該語句分配自有SQL區(qū)。2.檢查Dictionarycache中有無要訪問的表/視圖信息,若無則將其讀入Dictionarycache中(稱作一次rowcachemiss)。3.檢查數(shù)據(jù)緩存(Databasebuffercache),有無要操作的數(shù)據(jù),如有則使用當(dāng)前的緩存(稱作一次databufferhit),否則,將按下列步驟為該數(shù)據(jù)請求新的緩存(稱作一次databuffermiss):1)搜索least-recently-used(LRU)list,若發(fā)現(xiàn)dirtybuffer則寫入dirtylist并繼續(xù)搜索,如發(fā)現(xiàn)freebuffer則將其分配給該用戶,同時將該buffer移至most-recently-used(MRU)list,若未能搜索到freebuffer,則觸發(fā)DBWR進(jìn)程將一些dirtybuffer寫入磁盤,并將這部分dirtybuffer釋放為freebuffer。2)從數(shù)據(jù)文件中將要操作的數(shù)據(jù)讀入buffercache中;4.如果用戶執(zhí)行的是INSERT、DELETE、UPDATE等操作,系統(tǒng)將為其分配redologbuffer,用于記錄數(shù)據(jù)的變更情況,當(dāng)redologbuffer中無freebuffer時觸發(fā)LGWR進(jìn)程,將redologbuffer中的一些信息寫如數(shù)據(jù)庫的LOGFILE中。三、內(nèi)存使用情況分析要確定一個數(shù)據(jù)庫管理系統(tǒng)中的內(nèi)存配置的優(yōu)劣,首先應(yīng)掌握系統(tǒng)中當(dāng)前內(nèi)存的使用情況。ORACLE數(shù)據(jù)庫為數(shù)據(jù)庫管理員(DBA)提供了相應(yīng)的查詢方法,用于查詢數(shù)據(jù)庫的內(nèi)存使用情況。要提高系統(tǒng)的性能,DBA應(yīng)重點檢查以下幾個指標(biāo):剩余內(nèi)存(freememory)select*fromv$sgastatwherename=’freememory’;一般來說,當(dāng)您在數(shù)據(jù)庫啟動并投入使用相當(dāng)長時間后,系統(tǒng)尚有剩余內(nèi)存空間,說明您的數(shù)據(jù)庫的SGA設(shè)置是足夠的,無需增加SGA空間。內(nèi)存擊中率librarycache的擊中率selectsum(pins-reloads)/sum(pins)fromv$librarycache;數(shù)據(jù)字典的內(nèi)存擊中率

selectsum(gets-getmisses-usage-fixed)/sum(gets)fromv$rowcache;數(shù)據(jù)共享區(qū)的擊中率

selectname,valuefromv$sysstatwherenamein(‘dbblockgets’,’consistentgets’,’physicalreads’);擊中率=1-(physicalreads)/(dbblockgets+consistentgets)注意:以上幾個指標(biāo)均應(yīng)在系統(tǒng)運(yùn)行足夠長時間后進(jìn)行檢查。ORACLE數(shù)據(jù)庫的初始化參數(shù)文件通常存放在$ORACLE_HOME/dbs路徑下,其文件名為init+數(shù)據(jù)庫sid、后綴為.ora,如initorcl.ora。其中,影響數(shù)據(jù)庫內(nèi)存大小的參數(shù)主要有:DB_BLOCK_SIZE:每個數(shù)據(jù)庫塊的字節(jié)數(shù),在數(shù)據(jù)庫建立時已確定,為1024的整數(shù)倍,如2048、4096;DB_BLOCK_BUFFERS:數(shù)據(jù)庫數(shù)據(jù)緩存區(qū)的數(shù)據(jù)塊數(shù);SHARE_POOL_SIZE:共享存儲區(qū)的字節(jié)數(shù);SORT_AREA_SIZE:數(shù)據(jù)排序區(qū)的字節(jié)數(shù);當(dāng)剩余內(nèi)存(freememory)過少、內(nèi)存擊中率過低,當(dāng)librarycache的擊中率或數(shù)據(jù)字典的內(nèi)存擊中率低于0.95時,考慮調(diào)整SHARED_POOL_SIZE,DB_BLOCK_BUFFER的大小。此外,我們可以根據(jù)下面的算法,估算SHARED_POOL_SIZE的大小:SELECTSUM(value)FROMv$sesstat,v$statnameWHEREname=’sessionugamemory’

ANDv$sesstat.statistic#=v$statname.statistic#;該查詢返回的是目前所有用戶進(jìn)程所占用的SHARED_POOL字節(jié)數(shù);SELECTSUM(value)FROMv$sesstat,v$statnameWHEREname=’sessionugamemorymax’

ANDv$sesstat.statistic#=v$statname.statistic#;該查詢返回的是目前所有用戶進(jìn)程所需占用的SHARED_POOL最大字節(jié)數(shù);

我們可據(jù)此確定SHARED_POOL_SIZE的初始大小。四、SQL語句執(zhí)行效率問題1.檢查占用CPU時間比較長的sql語句:selectsql_text,cpu_timefromv$sqlwherecpu_time>1e7orderbycpu_time2.執(zhí)行效率最差的10條sql語句SELECT*FROM

(

SELECTPARSING_USER_ID

EXECUTIONS

SORTS,

COMMAND_TYPE,DISK_READS,sql_text

FROM

v$sqlarea

ORDERBYdisk_readsDESC)

WHEREROWNUM<10;3.利用V_$SQLAREA視圖提供了執(zhí)行的細(xì)節(jié)。(執(zhí)行、讀取磁盤和讀取緩沖區(qū)的次數(shù))selectSQL_TEXT,EXECUTIONS,DISK_READS,COMMAND_TYPE,OPTIMIZER_MODE,SHARABLE_MEM,BUFFER_GETSfromv$sqlarea數(shù)據(jù)列EXECUTIONS:執(zhí)行次數(shù)DISK_READS:讀盤次數(shù)COMMAND_TYPE:命令類型(3:select,2:insert;6:update;7d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論