130926-access

 データベースを使っているといろいろな処理が遅くなる場合があります。その対策としてSQLやインデックスなどでチューニングを行います。

 Accessも例外ではなく、先日、100万件のデータを処理するプログラムを作ったときは、あれやこれやとチューニングを行って処理を速めるようにしました。

 その時に知ったのですが、AccessでSQLの実行計画を取得し、それを参考にチューニングを行うことが出来ます。下記にそのAccessによる実行計画を取得する方法をメモ代わりに明記しておきます。

 AccessでSQLの実行計画を取得するにはWindowsのレジストリを触る必要があります。レジストリは御存知の通り、Windowsを動かす上で重要な部分です。ヘタに触って壊してしまうとWindowsが壊れ、最悪の場合、Windowsが二度と動かなくなる場合もあります。その為、下記方法を行う場合は自己責任で行ってください。

 私の環境ですが、Windows 7(64bit)のAccess 2010です。それ以外の環境では、おそらくほぼ同じだと思いますが、確認はしていません。

 まずはレジストリエディタを起動します。スタートメニューの検索ボックス(?)に「regedit」と入力してレジストリエディタを起動させます。

スタートメニューに「regedit」と入力してレジストリエディタを起動

スタートメニューに「regedit」と入力してレジストリエディタを起動

 レジストリが起動したら

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines

に「Debug」のキーを作成します。その中に「JETSHOWPLAN」の文字列値を作り、値に「ON」と入力します。これで設定は終わりです。

 あとは何かAccessファイルを起動しクエリなどを動かしてみてください。すると、私の環境ではドキュメントフォルダに「showplan.out」というテキストファイルが出来ますので、テキストエディタで開いてみてください。すると下記のような内容が書かれます。

— qsel_user —

– Inputs to Query –
Table ‘user’
– End inputs to Query –

01) Restrict rows of table user
by scanning
testing expression “user.user_name Like ‘*森*'”

実際にどのような意味があるかは、各自で解析する必要がありますが、チューニングのヒントが隠されている場合があります。

 あと、注意しなければならないのはAccessを起動するたびに「showplan.out」ファイルへ書かれますので、どんどん肥大していきます。なので、不要になったら先ほどの「JETSHOWPLAN」を「OFF」にしておきましょう。

Accessのデータベースのツボとコツがゼッタイにわかる本

著者/訳者:立山 秀利

出版社:秀和システム( 2008-11-25 )

定価:

Amazon価格:¥ 17,082

単行本 ( 287 ページ )

ISBN-10 : 4798021237

ISBN-13 : 9784798021232