Pregunta

He leído las diversas preguntas / respuestas aquí que básicamente indican que tener un índice agrupado en una columna de identificador único es una mala elección por razones de rendimiento. En cualquier caso, necesito usar un identificador único como mi clave principal, y NO quiero usar newsequentialid () porque los valores generados son muy similares entre sí (necesito más IDs aleatorios para que los usuarios no puedan [razonablemente] 'adivinar' otra ID).

Entonces, ¿cuál es la mejor manera de indexar este PK? Aunque un índice agrupado en esta columna no es ideal, es mejor que un " único, no agrupado " índice?

Estoy usando SQL Server 2005.

¿Fue útil?

Solución

En primer lugar, si está tratando de usar NEWID () para lograr la aleatoriedad (más que solo mirar al azar), está en problemas.

Por lo general, es una opción menos que ideal porque otros índices harán referencia a la clave de índice agrupado y una clave de índice agrupada larga degradará el rendimiento de todos los índices. Puede crear una columna entera IDENTITY y hacer que sea el índice agrupado y simplemente crear un índice único no agrupado en la columna uniqueidentifier .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top