Метод оптимизации, основанный на синтаксисе

Методы оптимизации

Существуют два принципиально разных подхода к оптимизации запро-сов. Если оптимизатор основывается только на информации о механизмах реализации путей доступа, то метод оптимизации основан на синтаксисе (на правилах, RULE). Если же помимо этого используется статистическая информация о распределении данных, то это метод оптимизации, основанный на стоимости (на издержках, COST). Рассмотрим эти подходы подробнее.

При использовании этого метода план составляется на основании существующих путей доступа и их рангов. Все пути доступа ранжируются на основании знаний о правилах и последовательности осуществления этих путей. В табл. 7.1 в качестве примера приведены ранги путей доступа для СУБД Oracle8.

Таблица 7.1. Ранги путей доступа для СУБД Oracle8

Ранг Пути доступа
Одна строка по ROWID*
Одна строка по кластерному соединению
Одна строка по хеш-кластеру с уникальным или первичным ключом
Одна строка по уникальному или первичному ключу
Кластерное соединение
Ключ хеш-кластера
Ключ индексного кластера
Составной индекс
Индекс по одиночному столбцу (по условию равенства)
Индексный поиск по закрытому интервалу
Индексный поиск по открытому интервалу
Сортировка-объединение
MAX и MIN по индексированному столбцу
ORDER BY по индексированному столбцу
Полный просмотр таблицы

* ROWID (идентификатор строки, КБД) – значение, которое может быть однозначно преоб-разовано в физический адрес записи.

Ранг пути доступа определяется на основании знаний о последовательности реализации этого пути. Например, самый быстрый способ доступа – это чтение по КБД: если он известен, то это одно физическое чтение. А поиск конкретного значения через индекс (ранг 9) обычно занимает меньше времени, чем поиск в закрытом интервале значений (ранг 10).

Метод оптимизации по синтаксису учитывает ранги путей доступа. Если для какой-либо таблицы существует более одного пути доступа, то выбирается тот путь, чей ранг выше, т.к. при прочих равных условиях он выполняется быстрее, чем путь с более низким рангом (рис. 7.2).

Рис.7.2. Построение плана выполнения запроса в методе оптимизации по синтаксису

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