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

       

Промежуточные составные отношения физически сохраняются


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

Теперь мы рассмотрим порядок, который выбирается для соединения отношений. Следует заметить, что хотя мощность результата соединения n отношений не зависит от порядка выполнения соединений двух отношений, стоимости соединений в разном порядке могут существенно различаться. Если в списке FROM блока запроса указано n отношений, то существует n! разных порядков выполнения соединений. Пространство поиска можно сократить на основе того наблюдения, что после соединения первых k отношений метод соединения результата с (k+1)-м отношением не зависит от порядка соединения первых k отношений, т.е. применимы одни и те же предикаты, имеется один и тот же набор интересных упорядочиваний, возможны одни и те же методы выполнения соединения и т.д. С использованием этого свойства эффективный способ организации поиска состоит в том, чтобы находить наилучший порядок соединения для последовательно возрастающего поднабора таблиц.

Для сокращения числа рассматриваемых перестановок в порядке соединения используется эвристика. Когда это возможно, поиск ограничивается рассмотрением только тех порядков соединения, для которых имеются предикаты соединения, связывающие внутреннее отношение с другими отношениями, уже участвующими в соединении. Это означает, что при соединении отношений tl, t2,..., tn рассматриваются только те порядки til, ti2,..., tin, в которых для всех j (j=2,..., n) либо (1) для tij имеется, по крайней мере, один предикат соединения с некоторым отношением tik, где k < j, либо (2) для всех k > j для tik отсутствует предикат соединения с til, tit,..., ti(j-1).

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

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