INT będzie szybszy - oto dlaczego:
- SQL Server organizuje swoje dane i indeks na stronach o rozmiarze 8K
- jeśli masz stronę indeksową z kluczem INT, otrzymasz około 2000 wpisów INT
- jeśli masz NVARCHAR(128) i używasz średnio 20 znaków, to 40 bajtów na wpis lub około 200 wpisów na stronę
Tak więc dla tej samej liczby wpisów indeksu przypadek NVARCHAR(128) wykorzystałby dziesięć razy więcej stron indeksu.
Ładowanie i wyszukiwanie tych stron indeksowych spowoduje znacznie więcej operacji we/wy.
Krótko mówiąc:jeśli możesz, zawsze używaj INT .