Access 2000 でクエリを最適化する方法
http://support.microsoft.com/kb/209126/ja
MS Access における検索のパフォーマンス改善は、SQL について対策するのであれば Rushmore を使えるようにすることが第一の目標となる。オプティマイザが決定した実行計画を出力するには、レジストリのキーを設定することで操作できる。
SQLの実行毎に、showplan.out ファイルがユーザのマイ ドキュメント(C:\Users\UserName\Documents)もしくは、カレントディレクトリに出力されます。ここに
using rushmore
と出力されると、クエリの検索で Rushmore が使えたことが分かる。- キーを追加する (※ Access 2007 の場合)
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Debug - このキーに文字列値を追加する
JETSHOWPLAN=ON
http://social.msdn.microsoft.com/Forums/office/en-US/b786a029-fa8c-4556-a40c-e749ba73499e/jetshowplan-in-access2013
出力例1(主キーの場合)
- Inputs to Query - Table 'TEST_TABLE1' - End inputs to Query - 01) Restrict rows of table TEST_TABLE1 using index 'Pri-Key' for expression "USER_NAME='User1'"
出力例2(rushmoreの場合)
- Inputs to Query - Table 'TEST_TABLE1' - End inputs to Query - 01) Restrict rows of table TEST_TABLE1 using rushmore for expression "USER_NAME='User1'" 02) Group result of '01)'
ただし SHOWPLAN の出力は恐ろしく使えない。例えば、
- 複数のSQLを実行したら、どのSQLの実行計画か全く分からない
複数のテーブルを結合すると、Temp02 とか内部の名称で出力されるので、アプリケーションのボトルネックとなる SQL をコストの重い順に探すような使い方はできない - SHOWPLAN についてのリファレンスが MSDN に無い!
- 出力内容が恐ろしく薄い
SQLの区別や処理時間やコストなど、チューニングに必要な情報が出力されない
Rushmore や、これ以外のパフォーマンスチューニングについての資料など。
Access データベースのパフォーマンスを向上させる
http://office.microsoft.com/ja-jp/access-help/HP005187453.aspx
Access のパフォーマンスを向上させる
http://office.microsoft.com/ja-jp/access-help/HA010235589.aspx
インデックスの作成と使用によりパフォーマンスを向上させる
http://office.microsoft.com/ja-jp/access-help/HA010210347.aspx
ACC: Access 2.0、Access 95 および Microsoft Access 97 でクエリを最適化する方法
http://support.microsoft.com/kb/112112
Visual Basic でクエリーを最適化する方法
http://support.microsoft.com/kb/172199/ja
Using Rushmore Query Optimization to Speed Data Access
http://msdn.microsoft.com/en-us/library/aa975907.aspx