日本エクセム マックスゲージホームに戻る

 

MaxGauge(マックスゲージ) Oracleのセッション、SQLの履歴を明細で記録するツール。自由な分析で効率化!! マックスゲージ製品情報はこちら

ツイートする

enq: TX - allocate ITL entry

1.概要

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

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


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

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

2.1.待機パラメータ

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

2.2.待機時間

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

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

3.1.INITTRANSの見直し

適切なINITRANSの値で表を作成することが、ITL容量不足によるTXロック競合現象を解決するための一般的な方法です。

STATISTIC_NAME = 'ITL waits'の条件でV$SEGMENT_STATISTICSビューを参照すると、ITL不足 による競合が問題が多く発生するセグメントを確認することができます。

 

この情報は、すべてのOracleバージョン、プラットフォームをサポートする物ではございません。実際の検証などを行う場合、十分なテストの上、自己責任での対応をお願いします。

Oracleの事なら日本エクセムホームへ | 会社情報 | 製品情報 | お問い合わせ | プライバシーポリシー

Copyright (C) EXEM JAPAN Corp. All Rights Reserved.