sql-server - nonclustered - primary key clustered sql server
SQL Server: cuándo usar el índice agrupado frente al no agrupado? (1)
Solo quiero decir una palabra de advertencia: ¡por favor , elija cuidadosamente su índice agrupado! Cada tabla de datos "normal" debe tener un índice agrupado, ya que tener un índice agrupado realmente acelera muchas operaciones, sí, ¡ acelere , incluso inserta y elimina! Pero solo si elige un buen índice agrupado.
Es la estructura de datos más replicada en su base de datos SQL Server. La clave de agrupación será parte de todos y cada uno de los índices no agrupados en su tabla, también.
Debe tener extremo cuidado al elegir una tecla de agrupamiento, debería ser:
estrecho (4 bytes ideal)
único (es el "puntero de fila" después de todo. Si no lo hace único, SQL Server lo hará por usted en segundo plano, lo que le costará un par de bytes por cada entrada multiplicado por el número de filas y el número de índices no agrupados tienes, ¡esto puede ser muy costoso!)
estático (nunca cambie, si es posible)
idealmente cada vez mayor para que no termine con una horrible fragmentación del índice (un GUID es el opuesto total de una buena clave de clúster, por ese motivo en particular)
debe ser no anulable e idealmente también ancho fijo; un
varchar(250)
hace que la clave de clúster sea muy pobre
Cualquier otra cosa debería ser realmente un segundo y tercer nivel de importancia detrás de estos puntos ...
Vea algunas publicaciones del blog de Kimberly Tripp ( La Reina de la Indexación ) sobre el tema: todo lo que ha escrito en su blog es absolutamente invaluable, léalo, digifíquelo, ¡viva de acuerdo con él!
Conozco las principales diferencias entre los índices agrupados y no agrupados y entiendo cómo funcionan realmente. Entiendo cómo los índices agrupados y no agrupados mejoran el rendimiento de lectura. Pero una cosa de la que no estoy seguro es de cuáles serían las razones por las que elegiría una sobre la otra.
Por ejemplo: si una tabla no tiene un índice agrupado, ¿debería uno crear un índice no agrupado y cuál es el beneficio de hacer?