Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

No SQL Server, devo criar um índice para uma coluna de identidade ou ele é criado 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.

Como prática geral, você cria um índice exclusivo em sua coluna de identidade, isso acelera as pesquisas.

Normalmente você gostaria que suas colunas de identidade também fossem 'índices agrupados' (Id int identity primary key é a notação de atalho), o que significa que a tabela é disposta no disco na mesma ordem que sua coluna de identidade. Isso otimiza para inserções, pois a página que está sendo inserida tende a ficar na memória. Em alguns casos, ao fazer pesquisas de intervalo com muita frequência em outros dados da tabela, você pode considerar agrupar outras colunas, pois o SQL Server permite apenas um índice agrupado por tabela.