Access. Программирование на VBA

       

Повышение скорости выполнения запросов


Оптимизация запросов в Jet — процесс довольно сложный, но это не значит, что в нем невозможно разобраться. Ниже приведены советы, которые помогут ускорить выполнение запросов:

• Рекомендуется создавать индексы для всех полей, которые будут использованы для определения критерия отбора.

Необходимо создавать индексы с обеих сторон связей в запросах.

• Вместо уникальных индексов лучше пользоваться начальными значениями. Поскольку начальные значения запрещают использование пулевых значений, запрос может использовать преимущества большего количества типов объединения.

• В результирующем наборе не следует отображать

какие-либо лишние столбцы. Обработка и отобра­жение каждого столбца занимает дополнительное время.

• Рекомендуется воздерживаться от употребления сложных выражений в запросах.

• Следует избегать функции IIF() (немедленное IF). IIF() оценивает и истинное, и ложное значения перед тем, как выдать результат. Если выполнять данную операцию для каждой записи, это может сильно повлиять на производительность.

• При использовании вложенных запросов рекомендуется записывать все вычисления в последнем запросе серии.

• Вместо Count([Customer]) лучше применять Count(*),

поскольку при срочной оптимизации Count(*) обрабатывается быстрее — перед подсчетом не нужно проверять нулевые значения.

• По возможности следует пользоваться оператором Between для уменьшения количества строк в ре­зультирующем наборе вместо операторов "больше чем" и "меньше чем".

• Обычно размещение условия со стороны "один" отношения "один-ко-многим" — самый эффектив­ный способ, но не всегда. Можно попробовать передвинуть ограничение к стороне "многие", что­бы проверить, не изменится ли производительность. После каждого изменения условий отбора необходимо тщательно проверять результирующий набор.

• Нормализованные таблицы могут хранить данные с использованием меньшего количества страниц данных и страниц индекса. Нормализация должна стать правилом, и нарушать ее можно лишь при отсутствии другой альтернативы.



Содержание раздела