Фазы обработки запроса

Оценить
(1 голос)

Задачей оптимизатора является разработка наиболее эффективного плана выполнения для заданного запроса. Эта задача решается с использованием следующих четырех фаз (рис. 20.1).

Фазы обработки запроса

 

1. Синтаксический разбор (parsing). Проверяется синтаксис запроса, сам запрос преобразуется в дерево. После этого выполняется проверка всех объектов базы данных, на которые в запросе приводятся ссылки. (Например, проверяется существование всех столбцов, на которые ссылается запрос, и определяются их идентификаторы.) После процесса проверки формируется окончательное дерево запроса.

2. Компиляция запроса (query compilation). Дерево запроса компилируются оптимизатором запросов.

3. Оптимизация запроса (query optimization). В качестве входных данных оптимизатор запросов получает скомпилированное дерево запроса, которое было сгенерировано на предыдущем шаге, и рассматривает различные стратегии доступа, прежде чем принять решение, как следует обрабатывать данный запрос. Для поиска наиболее эффективного плана выполнения запроса оптимизатор запросов вначале выполняет анализ запроса, в процессе которого он отыскивает аргументы поиска и операции соединения. Затем оптимизатор выбирает индексы, которые будут использоваться. Под конец, если существуют операции соединения, оптимизатор выбирает порядок соединений и выбирает одну из техник обработки соединений. (Эти фазы оптимизации детально рассматриваются в следующем разделе.)

4. Выполнение запроса (query execution). После того как будет сгенерирован план выполнения, он сохраняется и запрос выполняется.


Подробнее в этой категории: Как работает оптимизация запроса »
Как работает оптимизация запроса
Анализ запроса
Выбор индекса
Селективность выражения с индексированным столбцом
Статистические данные индекса

Добавить комментарий


Защитный код
Обновить

© 2021 serversql.ru. Все права защищены.