Оценочная оптимизация для магии алгебра и реализация

       

CM-преобразование SQL-запросов с представлениями:


Мы начинаем с блока SQL-запроса и выполняем преобразование ?-полусоединение, как это описывалось раньше. В этом блоке могут использоваться представляемые отношения, и после преобразования использования отношения Ri в блоке может иметься полусоединение вида

или
. Пусть Ei обозначает все выражение полусоединения, включающее Ri. Если Ri является представляемым отношением, можно рекурсивно создать специализированную версию Ri’, в которую протолкнуто полусоединение, путем использования преобразования ?-полусоединения SQL-блока, определяющего Ri. Наконец, если весь предикат ?i можно протолкнуть в определение представления Ri, то Ei заменяется на Ri’, а иначе на Ri’ заменяется только Ri в Ei.

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

Таким образом, мы показали, что для SQL-запросов эффект ограничительной магической перезаписи достигается как специальный случай преобразований ?-полусоединений, в частности, путем использования шага CMT. При исследовании полного пространства эквивалентных выражений ограничительная магическая перезапись будет рассматриваться в качестве варианта, и в пространстве поиска будет выбрано наиболее дешевое выражение.



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