Как рассчитать стоимость соединения? Я хочу знать операции на диске? - PullRequest
0 голосов
/ 24 апреля 2011

Мне нужна помощь по обработке объединения

  1. Объединение с вложенным циклом
  2. Блокирование соединения с вложенным циклом
  3. Объединение слиянием
  4. Соединение с хешем

Я ищу, но не нашел ссылки, которая также предоставляет математические примеры расчета?

например,

Рассмотрим естественное соединение R & S отношений R и S со следующей информацией об этих отношениях:

Отношение R содержит 8000 записей и имеет 10 записей встраница

Отношение S содержит 2000 записей и 10 записей на странице

Оба отношения хранятся в отсортированных файлах в атрибуте объединения

сколько операций с диском потребуется для обработкиверхние четыре присоединяются?

1 Ответ

0 голосов
/ 25 апреля 2011

Имеете ли вы в виду определенные dbms?

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

Как правило, всякий раз, когда я полностью объединяю две таблицы, я ожидаю увидеть два полных сканирования таблицы и хеш-соединение.Всякий раз, когда я соединяю части двух таблиц, я ожидаю увидеть вложенный цикл, управляемый из таблицы с наиболее избирательным предикатом фильтра.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...