Access 2002

Количество индексных страниц


•    Количество индексных страниц. Как и со страницами данных: чем больше в индексе страниц, тем выше стоимость запроса.

•    Допускаются ли в индексе значения Null. Значения Nul 1 могут сделать индекс бесполезным для выполнения объединения индексным слиянием.

Все вместе

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

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

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

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

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