Оператор Hash Match инструкции Showplan

Оператор Hash Match строит хэш-таблицу при помощи вычисления хэш-значения для каждой строки из своих входных данных. Предикат HASH:() со списком столбцов, использованных для создания хэш-значения, отображается в столбце Argument. Затем для каждой тестовой строки (если возможно) он вычисляет хэш-значение (с использованием той же хэш-функции) и осуществляет поиск совпадений по хэш-таблице. Если наличествует остаточный предикат (определенный посредством RESIDUAL:() в столбце Argument), строки должны удовлетворять также и этому предикату, чтобы рассматриваться в качестве совпадающих. Поведение зависит от выполняемой логической операции:

  • Для любых соединений используйте первую (верхнюю) входную строку с целью построения хэш-таблицы, а вторую (нижнюю) входную строку — для тестирования хэш-таблицы. Выходные данные совпадают (или не совпадают) в зависимости от типа соединения. Если несколько операций соединения используют один и тот же столбец соединения, эти операции группируются в хэш-группу.

  • Для операторов Distinct и Aggregate используйте входные данные с целью построения хэш-таблицы (удаляя дубликаты и вычисляя любые статистические выражения). Когда хэш-таблица будет построена, просмотрите таблицу и выведите все записи.

  • Для оператора Union используйте первую входную строку с целью построения хэш-таблицы (с удалением дубликатов). Используйте вторую входную строку (в которой не должно быть дубликатов) с целью тестирования хэш-таблицы, возвращения всех строк, не имеющих совпадений, затем просмотрите хэш-таблицу для возвращения всех записей.

Hash Match является физическим оператором.

Значок оператора Hash matchЗначок графического плана выполнения