![Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第1頁](http://file4.renrendoc.com/view/f40b45e86a1dccbdc3ab78ebb8d8e61f/f40b45e86a1dccbdc3ab78ebb8d8e61f1.gif)
![Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第2頁](http://file4.renrendoc.com/view/f40b45e86a1dccbdc3ab78ebb8d8e61f/f40b45e86a1dccbdc3ab78ebb8d8e61f2.gif)
![Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第3頁](http://file4.renrendoc.com/view/f40b45e86a1dccbdc3ab78ebb8d8e61f/f40b45e86a1dccbdc3ab78ebb8d8e61f3.gif)
![Oracle數(shù)據(jù)庫系統(tǒng)-性能優(yōu)化_第4頁](http://file4.renrendoc.com/view/f40b45e86a1dccbdc3ab78ebb8d8e61f/f40b45e86a1dccbdc3ab78ebb8d8e61f4.gif)
下載本文檔
版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣告公司合作合同范本6篇
- 2025年云南省職教高考《語文》考前沖刺模擬試題庫(附答案)
- 2025年武漢外語外事職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年日照職業(yè)技術(shù)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年撫順師范高等??茖W(xué)校高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 專題06 明清時期:統(tǒng)一多民族國家的鞏固與發(fā)展(講義)
- 小賣部承包經(jīng)營合同
- 黃豆采購合同
- 買賣合同的補(bǔ)充協(xié)議書
- 簡單的崗位聘用合同范本
- 成品移動公廁施工方案
- 2025年度部隊食堂食材采購與質(zhì)量追溯服務(wù)合同3篇
- 新人教版一年級下冊數(shù)學(xué)教案集體備課
- 任務(wù)型閱讀 -2024年浙江中考英語試題專項復(fù)習(xí)(解析版)
- 繪本 課件教學(xué)課件
- 大型央國企信創(chuàng)化與數(shù)字化轉(zhuǎn)型規(guī)劃實施方案
- pcn培訓(xùn)培訓(xùn)課件
- 過錯方財產(chǎn)自愿轉(zhuǎn)讓協(xié)議書(2篇)
- 監(jiān)理專題安全例會紀(jì)要(3篇)
- 牧場物語-礦石鎮(zhèn)的伙伴們-完全攻略
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認(rèn)證機(jī)構(gòu)要求》中文版(機(jī)翻)
評論
0/150
提交評論