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

       

и наибольшее значения подзапроса без


В DB2/* используются наименьшее и наибольшее значения подзапроса без корреляции для обеспечения условий старта и остановки (см. разд. 4.1) для внешнего блока запроса. Кроме того, в DB2/* специальным образом обрабатываются квантифицированные подзапросы (ALL, EXISTS). Например, SELECT C1 FROM T WHERE C1 > ALL ( SELECT C2 FROM T2 )

будет выполняться так, как если бы он был написан как SELECT C1 FROM T WHERE C1 > ( SELECT MAX(C2) FROM T2 )

Единственное значение из подзапроса может использоваться как стартовое условие на C1, что позволяет избежать построения временной таблицы. Специальное внимание уделяется тому, чтобы преобразование сохраняло исходную семантику неопределенных значений и отсутствия строк.

В DB2/* с использованием Starburst будет иметься полностью отдельный шаг компиляции, посвященный перезаписи запросов и основанный на технологии Starburst перезаписи на основе правил [PHH92]. Это добавит в DB2/* много дополнительных преобразований, для подробного описания которых потребовалось бы слишком много места.


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