Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

In SQL Server devo creare un indice per una colonna di identità o viene creato automaticamente?

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.

Come pratica generale, creeresti un indice univoco nella colonna dell'identità, questo velocizza le ricerche.

Di solito vorresti che anche le tue colonne di identità fossero "indici cluster" (Id int identity primary key è la notazione di scelta rapida), il che significa che la tabella è disposta su disco nello stesso ordine in cui è la colonna dell'identità. Ciò ottimizza per gli inserti, poiché la pagina in cui viene inserita tende a essere in memoria. In alcuni casi, quando esegui ricerche a intervalli molto frequenti su altri dati nella tabella, potresti prendere in considerazione la possibilità di raggruppare altre colonne, poiché SQL Server consente solo un indice cluster per tabella.