Хэш-объединения

Оценить
(0 голоса)

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

Хэш-объединения обычно менее дорогие и более быстрые, чем другие альтернативные варианты; не требуется выполнять сортировки обеих таблиц, как это происходит в объединениях слияния-сортировки; для них необходимо только одно прохождение по внутренней таблице, что выгодно отличает их от объединений вложенного цикла.

Звездообразные объединения
Разбивка данных на разделы
Денормализация
Сцепленные индексы
Материализованные представления

Добавить комментарий


Защитный код
Обновить