Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Sql Server int vs nvarchar Leistungsvergleich?

INT wird schneller sein - hier ist der Grund:

  • SQL Server organisiert seine Daten und seinen Index in Seiten von 8 KB
  • Wenn Sie eine Indexseite mit INT-Schlüssel darauf haben, erhalten Sie ungefähr 2'000 INT-Einträge
  • Wenn Sie NVARCHAR(128) haben und durchschnittlich 20 Zeichen verwenden, sind das 40 Byte pro Eintrag oder etwa 200 Einträge pro Seite

Für die gleiche Anzahl von Indexeinträgen würde der Fall NVARCHAR(128) also zehnmal so viele Indexseiten verwenden.

Das Laden und Durchsuchen dieser Indexseiten erfordert erheblich mehr E/A-Operationen.

Also um es kurz zu machen:wenn möglich immer INT .

verwenden