NOTA: Esta respuesta aborda el desarrollo de clase empresarial en-el-grande.
Este es un problema RDBMS, no solo SQL Server, y el comportamiento puede ser muy interesante. Por un lado, si bien es común que las claves primarias se indexen automáticamente (de manera única), NO es absoluto. Hay momentos en los que es esencial que una clave principal NO esté indexada de forma exclusiva.
En la mayoría de los RDBMS, un índice único se creará automáticamente en una clave primaria si aún no existe. Por lo tanto, puede crear su propio índice en la columna de la clave principal antes de declararlo como clave principal, luego el motor de la base de datos lo usará (si es aceptable) cuando aplique la declaración de la clave principal. A menudo, puede crear la clave principal y permitir que se cree su índice exclusivo predeterminado, luego crear su propio índice alternativo en esa columna y luego soltar el índice predeterminado.
Ahora, para la parte divertida, ¿cuándo NO quieres un índice de clave principal único? No desea uno, y no puede tolerar uno, cuando su tabla adquiera datos suficientes (filas) para que el mantenimiento del índice sea demasiado caro. Esto varía según el hardware, el motor RDBMS, las características de la tabla y la base de datos, y la carga del sistema. Sin embargo, típicamente comienza a manifestarse una vez que una tabla alcanza algunos millones de filas.
El problema esencial es que cada inserción de una fila o actualización de la columna de clave principal da como resultado una exploración de índice para garantizar la exclusividad. Esa exploración de índice única (o su equivalente en cualquier RDBMS) se vuelve mucho más cara a medida que la tabla crece, hasta que domina el rendimiento de la tabla.
He tratado este problema muchas veces con tablas de hasta dos mil millones de filas, 8 TB de almacenamiento y cuarenta millones de insertos de fila por día. Me encargaron rediseñar el sistema involucrado, que incluía dejar caer el índice de clave primaria único prácticamente como el primer paso. De hecho, la caída de ese índice fue necesaria en la producción simplemente para recuperarse de una interrupción, incluso antes de que nos acercáramos a un rediseño. Ese rediseño incluyó encontrar otras formas de garantizar la singularidad de la clave principal y proporcionar un acceso rápido a los datos.
El daño de los índices no utilizados es muy perjudicial. Por un lado, los índices consumen almacenamiento. Por otro lado, ralentiza las escrituras y las actualizaciones. Siempre borre los índices que no van a ser utilizados. – Pacerier