catch-img

gc buffer busy - 日本エクセム株式会社 Oracle待機イベント情報


目次[非表示]

  1. 1.基本情報
  2. 2.待機パラメータと待機時間
    1. 2.1.待機パラメータ
    2. 2.2. 待機時間
  3. 3.チェックポイントとソリューション
    1. 3.1.gc buffer busyの対策

基本情報

 gc buffer busyイベントは、ローカルプロセスが読み込もうとしているブロックが現在、リモートノードの処理によって使用中であることを示すイベントです。gc buffer busyイベントは、buffer busy waitsイベントやread by other sessionイベントのグローバルバージョンと言えます。サーバプロセスが特定のブロックを使用する時、バッファ・ロックの競合が生じると待機が発生します。バッファ・ロックの競合が発生した場面によって、これらの待機イベントの中から、一つを選択し、使用することになります。

関連資料 –
AsterくんがガイドするOracle Event Tour : gc buffer busy


待機パラメータと待機時間

待機パラメータ

 gc buffer busyイベントの待機パラメータは次のようになります。

・P1 : file#
・P2 : Block#
・P3 : id


待機時間

--


チェックポイントとソリューション

gc buffer busyの対策

 バッファ・ロックの競合が発生した原因と、それに該当する待機イベントは次になります。

・同一インスタンスの別プロセスが、ディスクにてブロックを読み込み中の場合、
 I/Oの作業が完了するまでread by other sessionイベントで待機します。
 I/O作業を処理するプロセスはdb file sequential readのイベントやdb file scattered readイベントで待機します。

・また、同一インスタンスの別プロセスに、別のインスタンスからブロックが転送されている場合、
 転送が完了するまでgc buffer busyイベントで待機します。

 gc buffer busyイベントの発生原因と解決方法はbuffer busy waitsイベントの発生原因・解決方法と一致します。その内容は次になります。

・gc buffer busyイベントが発生する原因として最も一般的だと言われるのが、ホット・ブロックです。
 したがって原因となるホット・ブロックを分散させることによって問題を解決できます。
 セグメントレベルのパーティションを適用、索引の右偏り現象の解消、
 シーケンスのキャッシュサイズ増大、PCTFREEの増加、等の方法があります。

・フリーリスト管理(FLM)を使用する場合は、セグメントヘッダーブロックがbuffer競合の原因になることがあります。
 Oracle 10g R2からは、基本的に自動セグメント領域管理(ASSM)が使用されるため
 FLMの環境において、性能問題が生じる可能性が低くなります。
 もしFLMを使用する環境であるなら、必ずFREELIST GROUPSの属性をノード数に合わせ、
 セグメントヘッダーブロックの競合を最小限にする必要があります。

・SQLのチューニングでアクセスするブロック範囲を少なくしましょう。

・同じセグメントに対する大量のDML作業が、複数のノードにて同時多発的に発生すると、
 広い範囲でバッファ・ロックの競合が発生する可能性があります。
 この場合は、アプリケーションを適宜に分散させ実行することで解決できます。


CONTACT

他社に頼らず自社でデータベースを監視・運用をしませんか?
MaxGaugeがサポートします

お役立ち資料は
こちらから

不明点がある方は、
こちらからお問い合わせください

お電話でのお問い合わせはこちら

平日 10時~18時

人気記事ランキング

タグ一覧