2010-12-06 9 views

Respuesta

19
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áctica general, se crearía un índice único en su columna de identidad, esto acelera las búsquedas.

Por lo general, también le gustaría que sus columnas de identidad sean 'índices agrupados' (Id int identity primary key es la notación de acceso directo), lo que significa que la tabla se muestra en el disco en el mismo orden en que se encuentra su columna de identidad. Esto optimiza para inserciones, ya que la página que se inserta en tiende a estar en la memoria. En algunos casos, cuando realiza búsquedas a distancia con mucha frecuencia en otros datos de la tabla, puede considerar agrupar otras columnas, ya que SQL Server solo le permite un índice agrupado por tabla.

+1

+1 - Me gusta el enfoque de codificación :) – Oded

2

De forma predeterminada, sus columnas de clave principal se convertirán en un índice agrupado; este es un índice especial que no está separado de los datos, pero en su lugar, los datos de los índices están ordenados en la tabla.

Digo 'por defecto', porque puede cambiar el índice agrupado a otro campo si lo desea. Si ha elegido un buen valor de identidad para su clave principal, casi nunca querrá cambiar esto.

+1

y ¿dónde está la relación con la columna IDENTIDAD en su respuesta? –

+1

Como otros señalaron en sus respuestas, las columnas de identidad no tienen nada que ver directamente con el índice agrupado (o cualquier otro tipo de índice). Creo que confunde la identidad con la clave principal, así que le expliqué qué es lo que * does * automáticamente, de forma predeterminada, termina como un índice agrupado. –

10

Si crea una columna con una restricción PRIMARY KEY, se creará un índice agrupado de forma predeterminada (suponiendo que se trata de una tabla nueva y que dicho índice ya no está definido).

Ser un campo IDENTITY no tiene nada que ver con eso.

Por lo tanto, para responder a su pregunta, si va a consultar/ordenar con este campo y no es una clave principal, debe definir un índice (regla general, siempre pruebe su escenario).

Cuestiones relacionadas