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

       

Вычисление стоимостей


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

Пусть C-outer(path1) обозначает стоимость сканирования внешнего отношения через path1, и N - число кортежей внешнего отношения, удовлетворяющих применимым предикатам. N вычисляется следующим образом:

N = (произведение мощностей всех отношений T, участвовавших в соединении до сих пор) * (произведение коэффициентов селективности всех применимых предикатов)

Пусть C-inner(path2) обозначает стоимость сканирования внутреннего отношения с применением всех применимых предикатов. Заметим, что с случае соединения путем сканирования со слиянием это означает сканирование последовательной группы внутреннего отношения, которая соответствует одному значению столбца соединения во внешнем отношении. Тогда стоимость соединения методом вложенных циклов вычисляется следующим образом:

C-nested-loop-join(pathl,path2) = C-outer(path1) + N * C-inner(path2)

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

C-merge(pathl,path2)= C-outer(path1) + N * C-inner(path2)

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

C-inner(sorted list) = TEMPPAGES/N + W*RSICARD

где TEMPPAGES - это число страниц, требуемых для сохранения внутреннего отношения.

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