DB2 Developer Domainの「カンタン! DB2テクテク第1歩」という連載があって、初心者向けの入門かと思ったらそうではなかったのですが、その中にExplainアクセスプラン編というのがあったので、その一部を簡単に試してみました。
詳細はともかく(^^;)、とりあえずサンプルデータベースに対して実行してみます。コントロールセンタを起動して、データベースのSAMPLEのところで「SQLのExplain...」というのを起動し、select firstnme, lastname from employee where salary > 30000のようなSQL文を入力して実行してみると、次のような結果になりました。
この画面の見方は、なんとなく(^^;)、「EMPLOYEE表をテーブルスキャンして結果を得る」という処理を行うつもりであり、それにはコストが50.17かかる、ということを言っているようです。
テーブルスキャンは気に入らないので、ではSALARYにインデックスを追加するとどうなるかを試してみました。インデックスの追加もコントロールセンタから行えるんですね。その結果はこちら。
お、なんか図の形が変わっています(低レベル ^^;)。これはおそらく、「EMPLOYEE表のSALARY_INDEXをスキャンして、その結果得られたレコード番号か何かでフェッチするという処理を行って結果を得る」つもりで、そのコストは25.10と言っているのでしょう。前の半分のコストになっていますね。
これなら簡単にわかっていいなあ(処理が簡単すぎてつまらないのではありますが)。