粗略來講,系統調整一般反映在下列方面:
Shared Pool and Library Cache Performance Tuning(共享池和Library Cache):Oracle將SQL語句、存儲包、對象信息和很多其他的項目保存在SGA中一個叫共享池(shared pool)的地方。這個可共享的區域由一個成熟的高速緩存和堆管理器管理。它有3個基本的問題要克服:
內存分配的單元不是個常量。從池中分配的內存單元可能是從幾個字節到幾千個字節。
在用戶完成工作時,不是所有的內存都能夠釋放出來,因為共享池的目標是使信息最大程度的共享。
沒有一個象其他常規的高速緩存的文件做後備的存儲那樣磁盤空間供整頁的導出。
只有可重新創建的信息可以從Cache中丟棄,在他被再次需要的時候再重新創建。
共享池調整的技巧有:
刷( Flush)共享池可以使小塊的內存合並為大塊的內存。當共享池的碎片過多時,這能夠暫時恢復性能。刷共享池可以使用語句:alter system flush shared_pool;
注意執行這個語句將會造成性能的暫時尖峰,因為對象都要重新加載。所以應當在數據庫的負載不是很大的情況下進行。
確保聯機事務處理( OLTP)應用使用綁定變量 (bind variables). 這一點對於決策支持系統(DSS)並不重要。
確保library cache 的命中率 > 95%
增大共享池並不總能解決命中率過多的問題。
Buffer Cache Performance Tuning(數據庫緩存調整):數據庫緩存保持了從磁盤上讀去的數據塊的備份。因為緩存通常受到內存約束的限制,不是磁盤上所有的數據都可以放到緩存裡。當緩存滿了的時候,後來的緩存不中使得Oracle將已經在緩存中的數據寫到磁盤上。後續的對寫到磁盤上的數據的訪問還會造成緩存不中。
從緩存調整的角度看,應力求避免以下的問題: