Hash Match (operador de Showplan)

El operador Hash Match genera una tabla hash calculando un valor hash para cada fila de su entrada de generación. En la columna Argument aparece un predicado HASH:() con una lista de las columnas utilizadas para crear un valor hash. A continuación, por cada fila de sondeo (como corresponda), calcula un valor hash (con la misma función hash) y busca las coincidencias en la tabla hash. Si hay un predicado residual (identificado mediante RESIDUAL:() en la columna Argument), ese predicado también debe cumplirse para que una fila se considere una coincidencia. El comportamiento depende de la operación lógica que se esté realizando:

  • Para cualquier combinación, utilice la primera entrada (superior) para generar la tabla hash y la segunda entrada (inferior) para sondear la tabla hash. Obtendrá como resultado las coincidencias (o las no coincidencias) que indique el tipo de combinación. Si varias combinaciones utilizan la misma columna de combinación, estas operaciones se agrupan en un equipo hash.

  • Para los operadores Distinct o Aggregate, utilice la entrada para generar la tabla hash (para ello, quite los duplicados y calcule las expresiones de agregado). Cuando se haya generado la tabla hash, recorra la tabla y presente todas las entradas.

  • En el caso del operador Union, utilice la primera entrada para generar la tabla hash (para ello, quite los duplicados). Utilice la segunda entrada (que no debe tener duplicados) para sondear la tabla hash, devolver todas las filas que no tengan coincidencias y, a continuación, recorrer la tabla hash para que se devuelvan todas las entradas.

Hash Match es un operador físico.

Icono del operador Hash MatchIcono del plan de ejecución gráfico