一時索引を使用する場合のオプティマイザーの動き (DB2/400)

なかなか必ず一時索引を作ってくれるような SQL 文を作るのは難しいような気がしたのですが、一応以下に挙げた例の SQL は毎回一時索引を作ってくれました。

こちらの記事でもふれたように、どうもロジックとしては、アドバイスされた索引で作成するコスト(CPU 時間) と実行で節約が見込めるコストが見合えば、わりあいカンタンに作成されてしまうもののようにも見えます。
やはり複合キーのものの方が作られやすいようにも見えます。回数的には 2〜3回実行しただけで出来るものは出来ているので、やはり、それなりの実行コストが必要なものの優先度が高いようにも見えますね。

テーブル・スキャンして STATE カラムと LSTNAM カラムをキーとして生成します。

↑で生成したキーの集合 (Node_6) をインデックスとして作成します。

一時索引から STATE が 'TX' であるものを選択しています。

比較対象となるカラムは STATE です。

比較する値は 'TX' という定数です。

STATE カラムをキーとして比較します。

カラムと定数の結合形態は 'Equality' になっています。

後続のテーブル・プローブに必要な選択済みの行が収集されます。(この時点でデータは 2行になっていますね)

キーで選択した対象行のカラムを取りに行っています。

[Top Pageに戻る]

Ads by TOK2