// Вывод оптимального плана для левого аргумента соединения
OptPlanReturn(str[i].X)
// Вывод метода выбора записей для правого аргумента
// соединения, которым является исходная таблица.
OptPlanReturn(str[i].Y)
Конец алгоритма.
Пример построения оптимального физического плана
Логический план
Построим оптимальный физический план для примера, который был рассмотрен ранее в разделе 1.3. В этом примере был построен логический план, представленный на рис. 1.24.
Рис. 1.24. Логический план выполнения запроса.
Ниже приведены исходные данные для построения физического плана:
1. Количество записей в исходных таблицах:
T(R1)=10000, T(R2)=100000
2. Количество записей в одном блоке таблицы:
LR1= LR2= 100, LJOIN=1000
3. Индексы по атрибутам и число записей в блоке индекса (L):
таблица R1: индекс по атрибуту "код_пользователя" (L=200),
таблица R2: индекс по атрибуту "номер_счета" (L = 200).
Примечание.Записи исходных таблиц могут читаться в отсортированном виде по своим индексированным атрибутам. Записи в таблице R1 сгруппированы по атрибуту "код_пользователя" (кластеризованный индекс), записи в таблице R2 не сгруппированы по атрибуту "остаток".