Оптимизация запросов Microsoft Access

Источник: DBF
ovsergey

Каждый хочет, чтобы его база данных работала наиболее оптимально. И частенько возникают такие ситуации, когда требуется ускорить работу какого-нибудь запроса или другого объекта базы данных. Выполнение запросов обычно зависит от таблиц или вложенных запросов, на основе которых они основаны, и от сложности самих запросов. Формы, основанные на таблицах, работают быстрее, чем формы, основанные на запросах, и присоединенные таблицы медленнее внутренних таблиц. Иногда может быть предпочтительнее вместо присоединения импортировать часто используемые внешние таблицы.

Ниже приведены несколько методов, которые используют продвинутые ИТ спецы для оптимизации скорости выполнения запросов в Access:

1. Отображайте минимальное количество полей в запросах. Для полей, которые используются в качестве критериев и не требуется вывод на экран, устанавливайте признак "not shown".

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

3. Используйте первичные ключи или уникальные индексы везде, где возможно.

4. Числовой предпочтительнее, чем текстовый первичный ключ.

5. Используйте не пустые уникальные поля.

6. Избегайте использования функции IIf() в запросах.

7. Избегайте группирующих функций, таких как Dlookup().

8. Охотнее используйте Between и Equal, это быстрее чем > или <.

9. Используйте фиксированные заголовки столбцов для перекрёстных запросов.

10. Для отчётов, основанных на запросах, используйте вид Portrait в Landscape и выбирайте "Да" для Fast Laser Printing (View,Options,Other Properties).

11. Используйте запросы, создающие таблицы для запуска отчётов на статичных данных. При этом вызываются snapshot отчёты.

12. Предпочтительнее Count (*) вместо Count(Column).

13. Когда создаётся ограничение на связанном столбце с типом один-ко-многим, протестируйте выполнее запроса, когда размещаете ограничение на стороне "один" или на стороне "много". Сторона "один" не всегда быстрее работает - сторона "много" может иметь немного меньше записей.

14. Короткие имена талбиц и полей работают быстрее, чем длинные имена.

15. Нормализация таблиц - связи работают быстрее на более маленьких таблицах.

16. Денормализация таблиц - понижается количество связей. На основе экспериментов выберете баланс между нормализацией и денормализацией.

17. Избегайте использования Distinct в запросах - Union запросы не нуждаются в опции distinct так как автоматически возвращают уникальные поля в процессе Объединения.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=5087