topimg.jpg


トランザクションエントリ(ITL)について

●トランザクションエントリ(ITL)
・ブロックを変更するトランザクションは、ITLを獲得する必要がある
・ITLはブロックヘッダに存在する(空き領域に存在することもある)
・ITLはデータブロック内の変更情報を管理する(この変更情報はUNDO表領域で使用される)
・ITLはトランザクションの行ロック排他制御にも利用される
INITRANSでITL数の初期値が設定される
MAXTRANSでITL数の最大値が設定される
 ⇒10gでは常に255で設定されている
 ⇒ITL が不足すると MAXTRANS まで自動的に拡張する
 ⇒最大値が255だからといって、1ブロックに255個のITLを作れるわけではない
  →空き領域による制限
   1エントリ毎に可変トランザクションヘッダ(KTBIT)で使用する24Byteの容量を必要とする。
   ブロック内の容量が足りなくなれば、ITLを作ることができなくなる。
  →ブロックサイズによる制限
   ブロックサイズによって、ITLの最大数はあらかじめ決められている。
   ブロックサイズ:ITLの最大値
   2KB : 41
   4KB :  84
   8KB : 169
   16KB : 255
   32KB : 255

参考
ITL (Interested Transaction List)
http://www.shift-the-oracle.com/table/ITL.html
トランザクションエントリに関する検証 その1
http://www.insight-tec.com/mailmagazine/ora3/vol143.html
索引の使い分けでパフォーマンスを向上できるケース
http://www.atmarkit.co.jp/fdb/rensai/orasql09/orasql09_4.html
スポンサーサイト
  1. 2010/03/20(土) 04:23:13|
  2. oracle
  3. | トラックバック:0
  4. | コメント:0
<<WindowsXPのインストールでエラー | ホーム | Oracleのデータ構造について>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://192168111.blog71.fc2.com/tb.php/37-8e81f0d9
この記事にトラックバックする(FC2ブログユーザー)