Access 2002

Два индекса


Два индекса объединены с помощью оператора Or. Условие отбора имеет следующий вид:

WHERE CarType – Фургон Or Year – 1997

О Подсчет записей. Запросы, которые возвращают только количество записей (с условием отбора или без него). Такой запрос имеет вид:

SELECT Count()FR0M Autos

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

Стратегии объединения

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

объединение путем вложенных итераций;

индексное объединение;

объединение поиском;

объединение слиянием;

объединение индексным слиянием.

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

Количество записей в базовой таблице.

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

Местонахождение таблицы. Хранится ли таблица в локальном формате ISAM или она находится в базе данных ODBC.

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

•    Полезность для отбора записей. Насколько «уникален» индекс? Допускаются ли в нем повторяющиеся значения ключевых полей? Отбор данных выполняется быстрее всего при наличии уникального индекса, поскольку наборы значений ключевых полей в нем не повторяются.

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