引き続き(?)AWR を分析中なのでしょうか・・・。
Top 10 Foreground Events で latch: shared pool が高かったので調べてみました。
shared pool ラッチは、shared pool を保護するラッチです。複数のプロセスが同時に割当てを行おうとすると破損してしまうので。排他制御します。shared pool の割当て/解放の際にこのラッチを獲得する必要があり、すぐに獲得できないと latch: shared pool で待機します。
これも、ラッチ関連をみます。
- Latch Activity
- Latch Sleep Breakdown
- Latch Miss Sources
ふーんって感じでいいと思います。
次に、shared pool なので、使用状況を確認してみます。
- SGA breakdown difference
たいていは、どこかの領域が変動しているかと思います。そして、変動が大きければ割当て/解放が多発していた可能性があり、ラッチの競合の原因になります。
じゃあ、なんで増えたんだっけ?とか減ったんだっけ?を考えていきます。
よくあるのはリテラルSQL がたくさん実行されてSQL AREA が増える、とかで latch: shared pool の競合が起きたりします。