關于內存參數的調整
2024-07-21 02:38:12
供稿:網友
 
                 關于參數調整,是Oracle的復雜性的一個具體體現。通常來講,我們更傾向于讓客戶做statspack報告,然后告訴我們os監控的狀況,在這些的信息的基礎上,再向客戶索取具體的具體信息以診斷問題的所在。系統的調整,現在我們通常采用從等待事件入手的方法。                                                                                            因為一個系統感覺到慢,必然是在某個環節上出現等待,那么我們從等待最多的事件入手逐步診斷并解決問題。    對于內存的調整,相對來說簡單一些,我們首先可以針對數據緩沖區的大小來看。首先觀察命中率    數據緩沖區命中率SQL> select value from  v$sysstat where name ='physical reads';     VALUE----------     14764SQL>  select value from  v$sysstat where name ='physical reads direct';     VALUE----------        50SQL> select value from  v$sysstat where name ='physical reads direct (lob)';     VALUE----------         0SQL> select value from  v$sysstat where name ='consistent gets';     VALUE----------167763SQL> select value from v$sysstat where name = 'db block gets';     VALUE----------     14305    這里命中率的計算應該是    令 x = physical reads direct + physical reads direct (lob)    命中率 =100 - ( physical reads - x) / (consistent gets + db block gets - x)*100    通常假如發現命中率低于90%,則應該調整應用可可以考慮是否增大數據緩沖區    共享池的命中率    SQL> select sum(pinhits)/sum(pins)*100 "hit radio" from v$librarycache; hit radio
 
---------- 99.809291    假如共享池的命中率低于95%,就要考慮調整應用(通常是沒使用bind var )或者增加內存    關于排序部分    SQL>  select name,value from v$sysstat where name like '%sort%';NAME                                                                  VALUE---------------------------------------------------------------- ----------sorts (memory)                                                        67935
                         sorts (disk)                                                              1sorts (rows)                                                           7070SQL>    假如我們發現sorts (disk)/ (sorts (memory)+ sorts (disk))的比例過高,則通常意味著sort_area_size部分內存較小,可考慮調整相應的參數。    關于log_buffer    SQL>  select name,value from v$sysstat    2    where name in('redo entries','redo buffer allocation retries');NAME                                                                  VALUE---------------------------------------------------------------- ----------redo entries                                                        2325719redo buffer allocation retries                                           10    假如 redo buffer allocation retries/ redo entries 的比例超過1%我們就可以考慮增大log_buffer    通常來說,內存的調整的焦點就集中在這幾個方面,更多更具體的內容,建議從statspack入手來一步一步調整。最后關于內存的調整,再強調這一點,一定要結合操作系統來衡量,任何理論都必須要實踐來檢驗。在操作系統中觀察 page  in/out 狀況,發現問題嚴重,應該考慮調小SGA。