Интернет магазин китайских планшетных компьютеров



Компьютеры - Семантическая оптимизация запросов СУБД

23 января 2011


Оглавление:
1. Семантическая оптимизация запросов СУБД
2. Упрощение условий и распределение предикатов



Семантическая оптимизация запросов СУБД — процесс валидации и преобразования синтаксического дерева запроса в форму, пригодную для дальнейших шагов оптимизации.

На этой стадии выполняется:

  1. Преобразование запросов в каноническую форму;
    1. Раскрытие представлений;
    2. Преобразование подзапросов в соединения;
    3. Спуск предикатов
  2. Упрощение условий и распределение предикатов;
  3. Преобразование дерева условий в пути выборки.

Преобразование запросов в каноническую форму

Запросы приводятся в каноническую форму, то есть переписываются так, чтобы они содержали минимальное количество операторов SELECT. Везде, где возможно, запрос должен быть приведен к форме единственного оператора SELECT. Это может позволить последующим фазам оптимизации сгенерировать значительно более эффективный план выполнения для сложных запросов.

Раскрытие представлений

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

Исходный запрос Результат
where cond2 T where

Преобразование подзапросов в соединения

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

Исходный запрос Результат
select distinct T.a from T

where T.b in

select distinct T.a

from T,T1 where T.b = T1.b and T1.c < T.c

Спуск предикатов

Исходный запрос Результат
where condA and condB join


Просмотров: 1856


<<< Секционирование
Сервер базы данных >>>