sql >> Databasteknik >  >> RDS >> Sqlserver

Ska jag skapa ett index för en identitetskolumn i SQL Server, eller skapas det automatiskt?

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.

Som en allmän praxis skulle du skapa ett unikt index på din identitetskolumn, detta påskyndar uppslagningar.

Vanligtvis vill du att dina identitetskolumner också ska vara "klustrade index" (Id int identity primary key är genvägsbeteckningen), vilket betyder att tabellen är upplagd på disken i samma ordning som din identitetskolumn är. Detta optimerar för inlägg, eftersom sidan som infogas i tenderar att finnas i minnet. I vissa fall, när du gör intervallsökningar mycket ofta på andra data i tabellen, kan du överväga att klustra andra kolumner istället, eftersom SQL Server bara tillåter ett klustrat index per tabell.



  1. MySQL - Pulling List beroende på datum och kategori

  2. SQL Server-avrundningsfel, ger olika värden

  3. Felkod:1215. Kan inte lägga till begränsning av främmande nyckel (främmande nycklar)

  4. @OnDelete Hibernate-kommentar genererar inte ON DELETE CASCADE för MySql