Классика баз данных - статьи

       

Выбор наилучшего плана


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

  1. Выбор локального плана доступа, а не удаленного.
  2. Выбор плана, в котором в качестве пути доступа используется индекс, если для каждого столбца ключа индекса специфицирован предикат сравнения по равенству.
  3. Если имеются два плана, которые принадлежат типу, описанному в п.2, выбирается тот из них, который обеспечивает ключевой доступ к базовой таблице (таблица реализуется в ключевом-последовательном файле), а не альтернативный индексный путь доступа.
  4. Выбор плана с более низкой индексной селективностью.
  5. Выбор плана, в котором используется большее число предикатов на ключевых столбцах индекса.
  6. Выбор плана, в котором используется индекс с UNIQUE.
  7. При прочих равных условиях выбор плана, производящего прямой доступ к базовой таблице.



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