¿Cuál es el propósito del identificador único secuencial en PK de MS SQL?
-
06-07-2019 - |
Pregunta
Sé que las claves primarias basadas en Guías no tienen el mejor rendimiento (debido a la fragmentación), pero son globalmente únicas y permiten escenarios de replicación.
Los identificadores integrales, por otro lado, tienen un mayor rendimiento a costa de la escalabilidad.
Pero, ¿en qué escenarios alguien querría usar un identificador único secuencial como clave principal? Creo que supera el propósito de GUID, pero aún veo mencionar las secuelas de vez en cuando.
¿Qué extraño aquí?
Solución
Lo que comúnmente se conoce como guías secuenciales en SQL Server 2005 (generado por NEWSEQUENTIALID ()) es un intento de superar los problemas con las guías normales.
Ellos son aún universalmente únicos pero también siempre están ascendiendo. Esto significa que pueden usarse para la replicación y tienen un rendimiento de inserción mucho mejor que los GUID tradicionales.
El único inconveniente es que no son "seguros". porque es posible adivinar el siguiente guid secuencial.
Otros consejos
El uso de guías secuenciales garantiza que siempre esté usando un valor mayor que el último valor. Para un campo indexado esto es importante. En lugar de insertar aleatoriamente en todo el espectro, siempre está insertando al final de la última " página " de datos, lo que resulta en divisiones de página reducidas drásticamente, especialmente en el caso donde su columna de identificador único también es su índice agrupado.