Partilhar via


Operador de plano de execução Hash Match

O operador Hash Match cria uma tabela de hash computando um valor de hash para cada linha da entrada criada. Um predicado HASH: () com uma lista de colunas usadas para criar um valor de hash aparece na coluna Argumento. Então, para cada fila de sondagem (conforme aplicável), ela computa um valor de hash (usando a mesma função de hash) e procura correspondências na tabela de hash. Se um predicado residual estiver presente (identificado por RESIDUAL: () na coluna Argumento ), esse predicado também deverá ser atendido para que as linhas sejam consideradas uma correspondência. O comportamento depende da operação lógica que está sendo executada:

  • Para qualquer junção, use a primeira entrada (superior) para criar a tabela de hash e a segunda (inferior) para sondar a tabela de hash. As correspondências de saída (ou não-correspondências) conforme determinadas pelo tipo de junção. Se várias junções usam a mesma coluna de junção, essas operações serão agrupadas em uma equipe de hash.

  • Para os operadores distintos ou agregados, use a entrada para criar a tabela de hash (removendo duplicatas e computando quaisquer expressões agregadas). Quando a tabela de hash for criada, verifique a tabela e saída de todas as entradas.

  • Para o operador de união, use a primeira entrada para criar a tabela de hash (removendo duplicatas). Use a segunda entrada (que não deve ter uma duplicata) para sondar a tabela de hash, retornando todas as linhas sem correspondência e, então, verifique a tabela de hash e retorne todas as entradas.

Hash Match é um operador físico.

Ícone do operador Hash matchÍcone de plano de execução gráfica