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

       

Счетчики индексов. Составные запросы, возвращающие


WHERE CompanyName='Ernst Handle' Or City='Graz'

• Счетчики индексов. Составные запросы, возвращающие только счетчик записей. При срочной оптими­зации обрабатывается каждый запрос, даже если не существует набора ограничений в условии Where.

SELECT Count(*) FROM Customers

Необходимо убедиться в том, что существуют и множественные индексы для всех таблиц, которые также выигрывают от этого. Кроме того, следует попытаться выразить запросы таким образом, который предполагает перекрытие или объединение данных индексов. Такой подход способствует оптимальному выполнению операций над базовыми таблицами в плане выполнения запроса.

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

Таблица 2. Типы объединения: принцип работы и отличительные признаки.



Тип объединения

Принцип работы

Отличительные признаки

Возможное использование

Индексное слияние

Основную работу выполняют индексы.

С обеих сторон связи используются индексы. По крайней мере, один из индексов не допускает нулевых значений (начальное значение). Все таблицы должны соответствовать собственному формату Jet.

Везде, где возможно.

Индекс

Первая таблица сканируется, а затем строки второй таблицы выбираются по индексу.

Существует индекс для связанных полей второй таблицы. В данных индексах  разрешены нулевые значения. Ограничения не используют индексы.

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

Слияние

Обе таблицы сканируются

одновременно

Две таблицы сортируются по связанным полям. В результирующем наборе отображены данные из обеих таблиц.

Обе таблицы достаточно большие и сортируются по связанным полям.

Выборка

Вторая таблица сканируется и сортируется перед объединением.

Нет индексов для связанных полей таблицы.

Когда вторая таблица имеет небольшие размеры и для связанных полей второй таблицы не существует индексов.

Вложенная итерация

Построчная итерация по каждой таблице в отношении.

Ни с одной стороны объединения не существует индексов.

Только для очень малых таблиц и если нет другого выбора.

Jet выбирает один из этих планов в зависимости от таких факторов, как:

• Число записей в каждой базовой таблице,

• Число страниц данных, используемых базовыми таблицами,

• Местонахождение и тип таблицы — локальная ISAM или ODBC,

• Избирательность индексов таблиц — разрешены ли нулевые значения или повторения,

• Число страниц индекса.


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