Share via


Operatore Showplan Hash Match

L'operatore Hash Match crea una tabella hash calcolando un valore hash per ogni riga dall'input di creazione. Nella colonna dell'argomentoappare un predicato HASH:() unitamente all'elenco delle colonne utilizzate per la creazione del valore hash. Per ogni riga probe, quando applicabile, viene calcolato un valore hash (tramite la stessa funzione di hashing) e quindi vengono cercate corrispondenze nella tabella hash. Se è presente un predicato residuo (identificato da RESIDUAL:() nella colonna dell'argomento), per considerare le righe come corrispondenti è necessario che sia soddisfatto anche tale predicato. Il funzionamento dipende dell'operazione logica eseguita:

  • Per tutti i join, il primo input (superiore) viene utilizzato per la creazione della tabella hash e il secondo input (inferiore) per l'esecuzione del probe nella tabella hash. L'output delle corrispondenze (o delle mancate corrispondenze) viene eseguito in base a quanto previsto dal tipo di join. Se più join utilizzano la stessa colonna di join, le operazioni sono raggruppate in un gruppo di hash.

  • Per gli operatori Distinct o Aggregate l'input viene utilizzato per la creazione della tabella hash (con rimozione dei duplicati e calcolo di eventuali espressioni di aggregazione). Quando viene creata la tabella hash, vengono eseguiti la scansione della tabella e il successivo output di tutte le voci.

  • Per l'operatore Union, il primo input viene utilizzato per la creazione della tabella hash (con rimozione dei duplicati). Il secondo input (che non deve includere duplicati) viene utilizzato per l'esecuzione del probe della tabella hash, seguita dalla restituzione di tutte le righe senza corrispondenze, dalla scansione della tabella hash e infine dalla restituzione di tutte le voci.

Hash Match è un operatore fisico.

Icona dell'operatore Hash MatchIcona del piano di esecuzione grafico