Sto iniziando a imparare i piani di esecuzione e sono confuso su come funziona esattamente una partita di hash e perché sarebbe utilizzata in un semplice join:
select Posts.Title, Users.DisplayName
From Posts JOIN Users on
Posts.OwnerUserId = Users.Id
OPTION (MAXDOP 1)
A quanto ho capito, i risultati della scansione dell'indice principale diventano l'hash in grado e ogni riga nella scansione cluster dell'indice inferiore viene cercata. Capisco come le tabelle di hash funzionano almeno in una certa misura, ma sono confuso su quali valori vengono esattamente sottoposti a hash in un esempio come questo.
Cosa avrebbe senso per me è il campo comune tra loro, l'id, è cancellato - ma se è così, perché è un numero?