
enq: TX – allocate ITL entry - 日本エクセム株式会社 Oracle待機イベント情報
目次[非表示]
- 1.基本情報
- 2.待機パラメータと待機時間
- 3.チェックポイントとソリューション
- 3.1.INITTRANSの見直し
基本情報
ITL(Interested Transaction List)は、特定のブロックを変更時のトランザクションのリストです。ブロックヘッダーで管理します。ブロックを変更するすべてのトランザクションは、ブロックヘッダーのITLエントリにトランザクション情報を登録します。ITLの最大値(MAXTRANS)を超えるか、またはブロック内の空き容量が不足してエントリを登録出来ない場合、プロセスは、既存のプロセスが確保しているITLを共有モードで獲得するために待機します。
Oracleは、次のような場合にenq : TX – allocate ITL entryを獲得します。表を作成するときに設定する3つの属性が本待機現象に関わります。
もし、同時トランザクションが多いと予想される表の場合、INITRANSを十分に確保することを
推奨します。INITRANSを十分に確保すれば、動的にスペースを確保するためのオーバーヘッドが減り、ITLエントリ不足によるTXロックの競合が発生しにくくなります。
待機パラメータと待機時間
待機パラメータ
enq: TX – allocate ITL entry待機イベントの待機パラメータは以下の通りです。
待機時間
最大3秒。もしTXロックを取得できない場合、取得するまで待機します。
チェックポイントとソリューション
INITTRANSの見直し
適切なINITRANSの値で表を作成することが、ITL容量不足によるTXロック競合現象を解決するための一般的な方法です。STATISTIC_NAME = ‘ITL waits’の条件でV$SEGMENT_STATISTICSビューを参照すると、ITL不足による競合が問題が多く発生するセグメントを確認することができます。