ACCESS(MDB)の実行計画を見る方法
ACCESS(MDB)でクエリの実行計画を見るには、以下のようにレジストリを変更する。*1
レジストリ変更
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Debug] "JETSHOWPLAN"="ON"
このようにすると、実行時にshowplan.outという名前のテキストファイルが作成され、以後、ここに実行計画が追記されてゆく。*2
このファイルが作成される場所はWindows2000ならJET実行時のカレントディレクトリ、XPならばユーザのマイドキュメントに置かれる。(Vistaは未確認)
放置すると、どんどん増えるので、使い終わったらOFFにしておく。
出力例
インデックスがない場合
--- クエリ1 --- - Inputs to Query - Table 'tmodel' - End inputs to Query - 01) Restrict rows of table tmodel by scanning testing expression "buc=[?]" 02) Group result of '01)'
インデックスをつけた場合
--- クエリ1 --- - Inputs to Query - Table 'tmodel' - End inputs to Query - 01) Restrict rows of table tmodel using rushmore for expression "buc=[?]" 02) Group result of '01)'
- by scanning となっていると、フルスキャン。
- using rushmore となっていればインデックスを使っており、しかも、インデックスページだけでデータを得られている、
ってことっぽい。
関連情報: http://msdn2.microsoft.com/en-us/library/aa188211.aspx
*1:元ねた: http://articles.techrepublic.com.com/5100-22-5064388.html
*2:試したところ、レジストリを書き換えてACCESSを再起動すれば出力されていた。ログオフやリブートは必要ないようである。