Выбор наилучшего плана
После того как оптимизатор завершает перечисление планов выполнения, для каждого плана в дереве поиска имеется ассоциированная стоимость. Оптимизатор намеревается выбрать план выполнения с наименьшей стоимостью (такой план считается наилучшим). Часто в дереве поиска содержатся два или более планов выполнения, стоимости которых очень близки. Поэтому в оптимизаторе реализуется иерархия правил разрешения конфликтов для сравнения двух правил, стоимость которых отличается не более чем на 10%. Иерархия правил выглядит следующим образом:
- Выбор локального плана доступа, а не удаленного.
- Выбор плана, в котором в качестве пути доступа используется индекс, если для каждого столбца ключа индекса специфицирован предикат сравнения по равенству.
- Если имеются два плана, которые принадлежат типу, описанному в п.2, выбирается тот из них, который обеспечивает ключевой доступ к базовой таблице (таблица реализуется в ключевом-последовательном файле), а не альтернативный индексный путь доступа.
- Выбор плана с более низкой индексной селективностью.
- Выбор плана, в котором используется большее число предикатов на ключевых столбцах индекса.
- Выбор плана, в котором используется индекс с UNIQUE.
- При прочих равных условиях выбор плана, производящего прямой доступ к базовой таблице.
Содержание Назад