catch-img

enq: TX – allocate ITL entry - 日本エクセム株式会社 Oracle待機イベント情報


目次[非表示]

  1. 1.基本情報
  2. 2.待機パラメータと待機時間
    1. 2.1.待機パラメータ
    2. 2.2.待機時間
  3. 3.チェックポイントとソリューション
    1. 3.1.INITTRANSの見直し

基本情報

 ITL(Interested Transaction List)は、特定のブロックを変更時のトランザクションのリストです。ブロックヘッダーで管理します。ブロックを変更するすべてのトランザクションは、ブロックヘッダーのITLエントリにトランザクション情報を登録します。ITLの最大値(MAXTRANS)を超えるか、またはブロック内の空き容量が不足してエントリを登録出来ない場合、プロセスは、既存のプロセスが確保しているITLを共有モードで獲得するために待機します。

 Oracleは、次のような場合にenq : TX – allocate ITL entryを獲得します。表を作成するときに設定する3つの属性が本待機現象に関わります。

・INITRANS :ブロック・ヘッダーごとに、いくつかのITLエントリを事前に確保するかを指定します。
 たとえば、INITRANSの値に10を設定すれば、10個の同時トランザクションのためのスペースが用意されます。

・MAXTRANS :最大いくつのITLエントリを許可するかを指定します。たとえば、
 MAXTRANSの値に50を設定すれば、最大50個の同時トランザクションを可能にします。

・PCTFREE :最初のブロックはINITRANSに指定されている値でITLエントリが確保されますが、
 同時トランザクションが増加すると、PCTFREEで確保された領域内でMAXTRANSは拡張されます。

 もし、同時トランザクションが多いと予想される表の場合、INITRANSを十分に確保することを
推奨します。INITRANSを十分に確保すれば、動的にスペースを確保するためのオーバーヘッドが減り、ITLエントリ不足によるTXロックの競合が発生しにくくなります。


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

待機パラメータ

 enq: TX – allocate ITL entry待機イベントの待機パラメータは以下の通りです。

・P1 : エンキュー情報
・P2 : usn < < 16 | slot
・P3 :シーケンス


待機時間

 最大3秒。もしTXロックを取得できない場合、取得するまで待機します。


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

INITTRANSの見直し

 適切なINITRANSの値で表を作成することが、ITL容量不足によるTXロック競合現象を解決するための一般的な方法です。STATISTIC_NAME = ‘ITL waits’の条件でV$SEGMENT_STATISTICSビューを参照すると、ITL不足による競合が問題が多く発生するセグメントを確認することができます。

CONTACT

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

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

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

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

平日 10時~18時

人気記事ランキング

タグ一覧