您好,登錄后才能下訂單哦!
SGA的組成圖 ----------------------------------------------------------------------------------------------------------------------- | SGA | | | | |--------------------------| |--------------------------| |------------------------| | | | | | | | | | | | 數(shù)據(jù)庫緩沖區(qū) | | 重做日志緩沖區(qū) | | 共享池 | | | | database bufferr cache | | redo log buffer | | shared pool | | | | | | | | | | | | | | | | | | | |--------------------------| |--------------------------| |------------------------| | | | | | | |--------------------------| |--------------------------| |------------------------| | | | | | | | | | | | Java池 | | 大池 | | 流池 | | | | Java pool | | large pool | | stream pool | | | | | | | | | | | |--------------------------| |--------------------------| |------------------------| | | | ----------------------------------------------------------------------------------------------------------------------- 數(shù)據(jù)庫緩沖區(qū) :該區(qū)域存放用戶從數(shù)據(jù)庫中讀取的數(shù)據(jù) 當(dāng)用戶查找數(shù)據(jù)庫時會首先在數(shù)據(jù)庫緩存中搜索,如果沒有才會讀取數(shù)據(jù)庫文件。 所以該區(qū)域不能設(shè)置的過小,不然頻繁的讀取數(shù)據(jù)文件會增大查詢時間,因為I/O是耗時的行為 重做日志緩沖區(qū) :該緩沖區(qū)放置用戶改變的數(shù)據(jù),所有變化了的數(shù)據(jù)和回滾需要的數(shù)據(jù)都暫時保存 共享池 :包括數(shù)據(jù)字典高速緩存和庫高速緩存,庫高速緩存存放Oracle解析的SQL語句、PL/SQL過程、包以及各種控制結(jié)構(gòu),如鎖、庫緩沖句柄 數(shù)據(jù)字典高速緩存保存執(zhí)行SQL語句所需的各種數(shù)據(jù)字典定義如表和列的定義,用戶訪問表的權(quán)限等。 Java池 :執(zhí)行Java代碼的區(qū)域 大池 :該內(nèi)存區(qū)提供大型的內(nèi)存分配,在共享服務(wù)器連接模式下提供會話區(qū),在使用RMAN備份時也使用該內(nèi)存區(qū)作為磁盤I/O的數(shù)據(jù)緩沖區(qū) 流池 :該區(qū)域稱為流內(nèi)存,是為Oracle流專用的內(nèi)存池,流是Oracle數(shù)據(jù)庫中的一個數(shù)據(jù)共享,其大小可以通過參數(shù)streams_pool_size SGA中的內(nèi)存參數(shù)可以動態(tài)修改,但是總的內(nèi)存大小受到參數(shù)SGA_MAX_SIZE的限制。 優(yōu)化重做日志緩沖區(qū) 重做日志緩沖區(qū)是使一段臨時存儲重做數(shù)據(jù)的內(nèi)存區(qū),所有變化的數(shù)據(jù)前項和修改后的數(shù)據(jù)都保存在重做日志緩沖區(qū)中,由LGWR進程負責(zé)寫入重做日志文件。 在優(yōu)化時,需要考慮該內(nèi)存區(qū)的大小,以及LGWR的寫速度和重做日志文件所在磁盤的爭用 LGWR把重做日志緩沖區(qū)寫入重做日志文件的條件 1.每隔3秒鐘 2.事務(wù)被提交時 3.當(dāng)重做日志緩沖區(qū)的記錄的變化的數(shù)據(jù)量超過1MB字節(jié) 4.當(dāng)重做數(shù)據(jù)的大小為中做日志緩沖區(qū)大小的1/3時, 當(dāng)重做數(shù)據(jù)量達到其容量的1/3這個閥值時,LGWR進程會寫出重做日志緩沖區(qū)的數(shù)據(jù),而剩下的2/3的數(shù)據(jù)可以提供其它服務(wù)器進程使用。 5.檢查點發(fā)生時 6.當(dāng)DBWR進程將數(shù)據(jù)庫高速緩沖區(qū)的數(shù)據(jù)寫到數(shù)據(jù)文件前 查看重做日志緩沖區(qū)的尺寸 show parameter log_buffer; 重做日志緩沖區(qū)相關(guān)的等待事件 如果需呀優(yōu)化重做日志緩沖區(qū),必須首先確認發(fā)生了與重做日志緩沖區(qū)相關(guān)的等待時間,否則不應(yīng)該隨便調(diào)整重做日志緩沖區(qū)的尺寸 通過WAIT視圖和EXENT視圖,確認等待時間以及該事件涉及的文件和會話 通過數(shù)據(jù)字典視圖查看會話等待事件 col event for a35 col username for a10 select sw.sid,s.username,sw.event,sw.wait_time from v$session s,v$session_wait sw where sw.event not like 'rdbms%' and sw.sid=s.sid order by sw.wait_time,sw.event 1.Log buffer space :該事件說明缺少重做日志的緩沖區(qū)空間, 造成該等待事件的原因一般是服務(wù)器進程寫入重做日志緩沖區(qū)的速度高于LGWR重做日志緩沖區(qū)寫出的速度, 也有可能是重做日志文件所在磁盤設(shè)備速度慢或者存在設(shè)備爭用,造成LGWR進程無法即使將重做日志緩沖區(qū)的重做數(shù)據(jù)寫入到重做日志文件 優(yōu)化方法:調(diào)整重做日志緩沖區(qū), 或者將重做日志數(shù)據(jù)文件遷移到高速磁盤 或者為了解決爭用,將重做日志文件和數(shù)據(jù)庫文件以及歸檔文件放在不同的磁盤上 2.log file parallel write :該事件的含義是日志文件并行寫等待,是在將重做日志緩沖區(qū)的重做數(shù)據(jù)寫入磁盤引起的等待事件。 造成該事件的原因一般是連接重做日志文件所在的設(shè)備速度慢或者存在磁盤爭用 優(yōu)化方法:將重做日志文件和數(shù)據(jù)庫數(shù)據(jù)文件以及歸檔文件放在不同的磁盤上。以及將重做日志文件放置在告訴盤上。 3.log file single write :該等待事件僅與寫日志文件頭塊有關(guān),表示檢測點中的等待 log file switch(archiving needed)該等待事件的含義是日志文件切換等待。 對于處于歸檔模式的數(shù)據(jù)庫而言,當(dāng)日志組寫滿后,在日志切換時需要覆蓋先前的日志, 而該日志需要歸檔進程寫入歸檔文件,由于寫入歸檔文件需要時間,而LGWR進程需要將重做日志緩沖區(qū)的數(shù)據(jù)寫入重做日志文件,而歸檔未完成需要等待,在此期間 就產(chǎn)生了log file switch事件,該等待事件的原因一般是I/O問題、ARCH歸檔進程跟不上LGWR日志寫進程的速度或這日志組太少引起的 優(yōu)化方法:啟用多個歸檔ARCH進程或I/O從進程(slave processe ), 將歸檔的文件和數(shù)據(jù)文件或重做日志文件防止在不同的位置,減少磁盤爭用以減少ARCH歸檔進程的歸檔事件, 或者增加重做日志組 4.log file switch(checkpoint incomplete):該事件是由日志切換太頻繁引起的,由于頻繁地切換重做日志文件,造成檢查點的排隊。 發(fā)生該等待事件的原因一般是重做日志緩沖區(qū)空間太小或者重做日志組太少。 優(yōu)化方法:增加重做日志組或者增加重做日志緩沖區(qū)尺寸。 5.log file sync:當(dāng)用戶提交時,重做日志緩沖區(qū)中的數(shù)據(jù)會一次全部寫到重做日志文件中,此時發(fā)生的LGWR的寫出等待就是log file sync等待。 造成該等待的原因一般是放置聯(lián)機重做日志文件的磁盤組存在爭用或者磁盤速度慢。 優(yōu)化方法:將重做日志文件和數(shù)據(jù)文件或歸檔重做日志文件放置在不同磁盤上,以減少數(shù)據(jù)庫中的各種文件之間的I/O爭用, 同時可以把重做日志文件放在高速磁盤上,以減少重做數(shù)據(jù)寫入重做日志文件的時間。 6.Latch free:該等待事件的含義是當(dāng)前的服務(wù)器進程需要某個閂鎖,比如等待共享池的庫高速緩存閂鎖。 如果發(fā)生該等待事件也可以通過數(shù)據(jù)字典V$Latch查看相關(guān)的閂鎖命中率。 查詢與閂鎖LATCH相關(guān)的信息 select latch#,name,gets,misses,1-(misses/(gets+misses)) "get rate" from v$latch where misses>1;
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。