Oracle SQLチューニング講座(9) Page 4/4

索引の使い分けでパフォーマンスを向上できるケース

株式会社アゲハ
倉田 寛正
2005/2/19

ITLの競合を回避する

 同時に大量のトランザクションが実行されるようなシステムでは、パフォーマンスの劣化の原因として、表や索引のデータブロックで、ITL(Interested Transaction List)の競合が発生している場合も考えられます。ITLとは、各データブロック内に保持されるトランザクション情報のことで、ブロックを変更するトランザクションは、最初にITLを割り当てる必要があります。ITLが不足した場合、MAXTRANSの値まで自動的に拡張されますが、空き領域がないなどの理由により拡張できない場合、トランザクションはITLが獲得できるまで待機することになります。

 ITLの個数はオブジェクト作成時の「INITRANS」パラメータによって決まり、最大値はブロック・サイズに依存します。StatsPackやv$segment_statistics ビューにより、ITLの競合が多発していることが確認できた場合には、PCTFREEやINITRANSの調整を検討します。

ブロック・サイズ ITLの最大値
2K 41
4K 84
8K 169
16K 255
32K 255
 図12 ITLの競合による待機とブロック・サイズごとのITLの最大値


索引作成時のDESCオプションについて

 索引を作成時、列名の後にDESCオプションを指定することができます。逆キー索引のREVERSEオプションと似たようなイメージを想像させる単語ですが、実際には索引のデータを降順(デフォルトは昇順)に格納するオプションになります。DESCオプションを指定した索引はファンクション索引扱いになるので、先に説明したファンクション索引の設定と同一の設定が必要になります。

 今回までは索引を使用したチューニング・テクニックを説明しました。次回からは、結合に関するチューニング・テクニックを紹介します。(次回に続く)

4/4  

 Index
連載 Oracle SQLチューニング講座(9)
索引の使い分けでパフォーマンスを向上できるケース
  Page 1
・ファンクション・ベース索引の使用
  Page 2
・ビットマップ索引の使用
  Page 3
・逆キー索引の使用
Page 4
・ITLの競合を回避する
・索引作成時のDESCオプションについて


連載 Oracle SQLチューニング講座

TechTargetジャパン

Database Expert フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH