- 相關推薦
Oracle數據庫內存監(jiān)控和意義
ORACLE的數據庫所占用的內存區(qū)域被稱為SGA,它主要由三部分組成,第一部分是DATA BUFFER,第二部分是LOG BUFFER,第三部分是SHARED POOL。
DATA BUFFER中存放的是常用的ORACLE數據塊,當ORACLE中的某個事務要對某些數據進行查詢或修改時,ORACLE會首先在DATA BUFFER中尋找該數據塊,若能找到,則操作直接在內存中進行,不需要物理讀操作,這樣可以提高系統(tǒng)性能。對于DATA BUFFER的管理而言,最重要的一個指標就是它的命中率,如果命中率大于95%,則說明絕大多數數據都可以直接在內存中訪問到,系統(tǒng)的性能尚可,若此值 小于95%,則需增大DATA BUFFER的空間。
LOG BUFFER中存放的是ORACLE的REDO LOG信息,這些信息在滿足一定的條件時由ORACLE后臺進程LGWR寫入到物理的REDO LOG文件中。如果LOG BUFFER的空間太小,而CPU較快,硬盤較慢,則在事務處理繁忙時,有可能會造成當LOG BUFFER還沒有完全寫入REDO LOG時,LOG BUFFER已全部占滿的情況。此時正在被處理的事務只能等待系統(tǒng)將LOG BUFFER完全寫入文件后才能繼續(xù),這樣一來,系統(tǒng)的性能將受到影響。對于LOG BUFFER的管理而言,最重要的一個指標就看是它的REDO LOG SPACE REQUEST與REDO ENTRIES的比率,如果此數值小于1/5000,則說明系統(tǒng)的性能尚可,若此值大于1/5000,則需增大LOG BUFFER的空間。
SHARED POOL主要由兩部分組成,其一為DICTIONARY CACHE,其二為LIBRARY CACHE。
DICTIONARY CACHE在內存中存放ORACLE數據庫中常用的數據字典的信息,若此區(qū)域太小,當ORACLE需要某些數據字典信息,如對某用戶的權限設置等信息時, 如果該信息不能在DICTIONARY CACHE中找到,則必須先通過物理讀從ORACLE數據庫的數據文件中得到該信息,然后再將該內存區(qū)域的部分信息替換出去。如此反復,將大大影響系統(tǒng)的 性能。對于DICTIONARY CACHE的管理而言,最重要的一個指標就是它的命中率,如果命中率大于95%,則說明絕大多數數據字典信息都可以直接在內存中訪問到,系統(tǒng)的性能尚可, 若此值小于95%,則需增大SHARED POOL的空間,從而間接增大DICTIONARY CACHE的空間。
LIBRARY CACHE在內存中存放經語法分析后的、可執(zhí)行的SQL CURSOR的信息和編譯后的PL/SQL的程序等。當用戶向ORACLE發(fā)出一個SQL命令后,ORACLE首先利用其內部的HASH函數將此SQL語 句的文本映射成一個LIBRARY CACHE中的地址,檢查在該地址是否有已經過語法分析后的、可執(zhí)行的與該SQL語句對應的SQL CURSOR的信息,如果沒有,則ORACLE將該SQL語句經語法分析后的結果存放在此,這樣一來,下一條與此完全一致的SQL語句將不必再次進行語法 分析。ORACLE數據庫通過這樣的機制來提高系統(tǒng)性能。但如果LIBRARY CACHE太小,當用戶下一條完全一致的SQL語句鍵入時,原SQL語句經語法分析后的結果已被替換出去,在這樣的情況下,系統(tǒng)的性能將大受影響。因此對 于LIBRARY CACHE的管理而言,最重要的一個指標就是它的命中率,如果命中率大于95%,則說明絕大多數可執(zhí)行信息都可以直接在內存中訪問到,不必再次經過語法分 析和編譯,系統(tǒng)的性能尚可,若此值小于95%,則需增大SHARED POOL的空間,從而間接增大LIBRARY CACHE的空間。
目標
監(jiān)控數據庫的內存使用效率,以確定數據庫的使用是否存在嚴重的內存配置問題。
常用的掃描類型
BCHRATIO:此掃描類型顯示DATA BUFFER的命中率,通常情況下,該數值不應小于95%。
DATABASE SLOTS – REDO LOGS:此掃描類型顯示關于LOG BUFFER的信息。
LIBRARY CACHE – PIN HIT RATIO:此掃描類型顯示關于LIBRARY CACHE的命中率。
DICTIONARY CACHE – HIT RATIO:此掃描類型顯示關于DICTIONARY CACHE的命中率。
表格1.與內存監(jiān)控有關的掃描類型
Scan Group |
Scan Type |
Description |
Dictionary Cache Info |
Hit Ratio |
數據字典緩沖區(qū)命中率。當命中率較低且系統(tǒng)事務繁忙時,應適當加大init/*$ORACLE_SID*/.ora文件中的SHARE_POOL_SIZE參數 |
Pin Hit Ratio |
對Library Cache 發(fā)出pin請求的命中率,通常,如果pin 的命中率小于95%,適當增大init/*$ORACLE_SID*/.ora文件中SHARED_POOL_SIZE參數 |
|
Request Hit Ratio |
對Library Cache 發(fā)出get請求的命中率,通常,如果pin 的命中率小于95%,適當增大init/*$ORACLE_SID*/.ora文件中SHARED_POOL_SIZE參數 |
|
I/O Performance Info |
Buffer Cache Hit Ratio |
數據緩沖區(qū)命中率。如果該命中率經常低于95%,則需要增加init/*$ORACLE_SID*/.ora文件中的db_block_buffers參數 |
Individual Scan Types |
SGA |
SGA區(qū)中每一個部分的大小 |
Latch Contention Pct. |
Latch請求超時的比率 |
表格2.與內存監(jiān)控有關部門的報警類型
Related Event |
Performance Workspace |
Scan Group |
Scan Type |
Description |
Hit Ratio |
AL_hitratio.wsv |
I/O Performance Info Group |
Buffer Cache Hit Ratio |
如果 buffer cache命中率低于閾值,引發(fā)報警。此報警可以用于檢查是否Buffer Cache過小。 |
SgaFreememLow |
AL_SgaFreeMemLow.wsv |
Individual Scan Types |
SGA Status |
如果SGA memory 百分比少于閾值,觸發(fā)報警。 |
【Oracle數據庫內存監(jiān)控和意義】相關文章:
Oracle認證:Oracle內存結構研究-PGA篇09-22
Oracle數據庫語句大全10-08
ORACLE數據庫碎片的整理08-18
oracle數據庫基本語句08-21
Oracle數據庫認證層次08-29
Oracle數據庫的基本介紹09-04
Oracle數據庫SQLPLUS介紹10-09
Oracle數據庫SELECT語句10-25
Oracle 數據庫查詢小技巧10-17
oracle數據庫基礎知識07-26