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

Sollte ich in SQL Server einen Index für eine Identitätsspalte erstellen oder wird er automatisch erstellt?

create table test (Id int identity)
go
sp_help test
The object 'test' does not have any indexes, or you do not have permissions.

No constraints are defined on object 'test', or you do not have permissions.

Als allgemeine Praxis würden Sie einen eindeutigen Index für Ihre Identitätsspalte erstellen, dies beschleunigt die Suche.

Normalerweise möchten Sie, dass Ihre Identitätsspalten auch "Cluster-Indizes" sind (Id int identity primary key ist die Abkürzungsnotation), was bedeutet, dass die Tabelle in der gleichen Reihenfolge wie Ihre Identitätsspalte auf der Festplatte angeordnet ist. Dies optimiert Einfügungen, da sich die Seite, in die eingefügt wird, in der Regel im Speicher befindet. In einigen Fällen, wenn Sie sehr häufig Bereichssuchen für andere Daten in der Tabelle durchführen, können Sie stattdessen andere Spalten gruppieren, da SQL Server nur einen gruppierten Index pro Tabelle zulässt.