Entiendo que puede haber una diferencia de significado o intención entre los dos, pero ¿hay alguna diferencia de comportamiento o rendimiento entre una clave primaria agrupada y un índice único agrupado?
17
Entiendo que puede haber una diferencia de significado o intención entre los dos, pero ¿hay alguna diferencia de comportamiento o rendimiento entre una clave primaria agrupada y un índice único agrupado?
Una diferencia principal es que el índice único puede tener un valor NULL que no está permitido en la clave primaria. Agrupados o no, esta es la principal diferencia entre la implementación práctica de una Clave primaria frente a una Clave única.
Ah, y el hecho de que una tabla puede tener un PK y muchos UK :-).
Ambas son diferencias en INTENTO, no en RENDIMIENTO. De lo contrario, no creo que haya ninguna diferencia. Detrás de cualquier PK o UK, el SQL Server crea un índice (dependiendo de la solicitud, agrupado o no) y la forma en que se usa es transparente para la fuente de origen.
NOT NULL UNIQUE CLUSTERED
o (B) para resaltar que un UQ particular es "especial" en un sentido de metadatos, a pesar de que el RDMS es agnóstico?PRIMARY KEY
yNOT NULL UNIQUE
, el primero sería mucho más difícil de convertirNULL UNIQUE
(particularmente si la restricción ya estaba referenciada por una clave externa). Ciertamente evitaría cambios accidentales deNOT NULL
aNULL
.Entre una clave primaria en clúster y un índice en clúster único, no hay otra diferencia que el índice en clúster único puede tener un valor NULL.
Un índice agrupado no único tiene un unificador que debe tratarse para valores no únicos.
fuente