Access 2002

Пара таблиц


Так может быть в случае, если в приложении некоторая пара таблиц практически не используется по отдельности, зато очень часто выполняются запросы, требующие объединения этих таблиц. (Вопросы денормализации таблиц и их проектирования рассмотрены в Приложении Г.)

Выбирая между подчиненным запросом и запросом на объединение таблиц, лучше проверить оба варианта. В одних случаях быстрее будет работать первое решение, а в других — второе.

Избегайте использования внешних объединений, поскольку они требуют полного сканирования таблицы, включающейся в объединение целиком (то есть левой таблицы в левом внешнем объединении).

Старайтесь вместо строк SQL использовать сохраненные запросы, поскольку они уже оптимизированы. Для SQL-операторов в свойствах RecordSource (Источник записей) и RowSource (Источник строк) форм и отчетов Access сама создает скрытые сохраненные запросы, но для SQL-строк в программном коде она, конечно, такого не делает.

Хотя в общем случае лучше использовать сохраненные запросы, это правило не универсально. При первом запуске такого запроса Jet создает и сохраняет вместе с ним план его выполнения, который уже не меняется до тех пор, пока вы не измените запрос. Если запрос содержит параметр, который может значительно изменять количество возвращаемых строк (то есть в зависимости от значения этого параметра запрос может вернуть 10 строк, а может и 10 миллионов таковых), то сохранение запроса — далеко не лучшее решение. А вот временные запросы Jet оптимизирует перед каждым их выполнением, так что в описанной ситуации лучше генерировать запрос программным путем.

Комментарии закрыты