Если база данных MS Access начинает «тормозить», медленно открываются формы, отчеты, виной тому чаще всего являются тяжелые запросы. Первым делом необходимо определить над каким именно запросом задумывается Access, а затем приступить к его оптимизации. Во «взрослых» базах данных, таких как Oracle, MS SQL Server, PostgreSQL, MySql есть документированные средства, позволяющие взглянуть на выполнение запроса глазами SQL-сервера. Я говорю о плане выполнения запроса.
А как же в Access? Неужели разработчики не предусмотрели возможность просмотра плана выполнения запроса?
Оказалось такая возможность есть, просто она недокументированная. Если в разделе реестра
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Debug] создать строковый параметр JETSHOWPLAN и присвоить ему значение ON, то это заставит Access (после перезапуска) создавать текстовый файл showplan.out в папке Мои документы, в котором будет содержаться план выполнения запросов.

Построение плана выполнения запросов происходит в момент компиляции последних. Существующие запросы уже, как правило, скомпилированные. Чтобы заставить Access перекомпилировать запрос, нужно его изменить (как вариант открыть запрос, перейти в режим SQL и добавить пробел в конце), сохранить и выполнить. (далее…)