primary primaria por ordenar modificar llave foranea fecha ejemplos descendente crear clave ascendente sql-server indexing primary-key

sql server - por - Clave primaria Ascendente vs descendente



order by en sql (2)

Desde un punto de vista puramente de consulta, no hace ninguna diferencia si su clave es descendente o ascendente si desea extraer N registros más recientes o N más antiguos:

Los algoritmos internos de SQL Server pueden navegar con la misma eficacia en ambas direcciones en un índice de una sola columna, independientemente de la secuencia en la que se almacenan las claves. Por ejemplo, la especificación de DESC en un índice de una sola columna no hace que las consultas con una cláusula ORDER BY IndexKeyCol DESC se ejecuten más rápido que si se hubiera especificado ASC para el índice.

http://msdn.microsoft.com/en-us/library/aa933132(SQL.80).aspx

Sin embargo, en casi cualquier circunstancia normal, usted desea que su clave principal sea ascendente y ordinariamente secuencial para evitar la fragmentación . SQL Server está optimizado para agregar físicamente nuevos registros al final del archivo de base de datos. Si necesita insertar cada nuevo registro en la parte superior y empujar todo hacia abajo, probablemente resultaría en casi el 100% de fragmentación.

En el servidor Sql, tengo una tabla con una clave primaria de identidad. A menudo quiero los últimos registros nuevos, así que cojo la Top n ordenada descendiendo la clave principal. ¿Debo definir el índice de clave principal como descendente, o no hace ninguna diferencia? es decir, si están en orden Ascendente, entonces, ¿puede sql trabajar tan eficientemente hacia atrás?


No hace absolutamente ninguna diferencia.

Ni siquiera puedo imaginar por qué es posible declararlo de cualquier manera.