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

       

На практике стоимость соединения оценивается


На практике стоимость соединения оценивается с испрользованием приведенных ранее формул, и выбирается самый дешевый путь. Для соединения отношения EMP с отношением DEPT мы предполагаем, что наиболее дешевым является индекс DNO. Налучший путь доступа для каждого отношения второго уровня комбинируется с каждым из планов с для формирования решений с вложенными циклами, показанного на .
Далее мы генерируем решения с использование метода сканирования со слиянием. Как мы видем в левой части , имеется возможность сканирования отношения EMP в порядке DNO, поэтому существует возможность использовать это сканирование и сканирование по DNO отношения DEPT, чтобы выполнить соединение сканированием со слиянием без какой-либо сортировки. Хотя можно выполнить соединение слиянием без сортировки, может быть дешевле использовать индекс JOB на EMP, отсортировать по DNO, а потом выполнить слияние. Заметим, что мы не рассматриваем возможность сортировки таблицы DEPT, потому что наиболее дешевое сканирование этой таблицы уже обеспечивает упорядоченность по DNO.
Для слияния JOB с EMP мы рассматриваем только возможность использования индексв JOB на EMP, потому что это наиболее дешевый путь доступа для EMP безотносительно упорядоченности. Используя индекс JOB на JOB мы можем выполнить слияние без какой-либо сортировки. Однако может оказаться дешевле отсортировать JOB, используя сегментное сканирование для обеспечения данных для сортировки, а затем выполнить слияние.
На мы видим, что путем доступа, выбранным для отношения DEPT, является индекс DNO. После доступа к DEPT через этот индекс мы можем выполнить слияние с EMP, используя индекс DNO на EMP, опять безо всякой сортировки. Однако может оказаться дешевле сначала отсортировать EMP, используя индекс JOB для обеспечения данных для сортировки, а затем произвести слияние. Оба эти случая показаны на
Когда вычисляют все стоимости, показанные на и , они сравниваются с наиболее дешевым эквивалентным решением (те же таблицы и тот же порядок результата), и сохраняется наиболее дешевое решение.После этого отсечения находятся решения для всех трех отношений. Для каждой пары отношений мы находим пути доступа для соединения с оставшимся третьим отношением. Как и ранее, мы расширяем дерево, используя методы вложенных циклов и сканирования со слиянием для соединения третьего отношения. Дерево поиска для трех отношений показано на . Заметим, что в одном случае сортируется и составное отношение и добавляемая таблица (JOB). Заметим также, что в некоторых случаях сортировка вообще не производится. В этих случаях составной результат материализуется по одному кортежу за раз, и промежуточные составные отношения никогда не сохраняются. Как и ранее, по мере вычисления стоимостей он сравниваются с наиболее дешевым решением.

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