Sin un índice agrupado, su tabla está organizada como un montón. Esto significa que cada fila que se inserta se agrega en la página de datos al final de la tabla. Además, a medida que las filas se actualizan, se mueven a la página de datos al final de la tabla si los datos actualizados son más grandes que antes.
Cuando es bueno no tener un índice agrupado
Si tiene una tabla que necesita de las más rápidas posibles inserciones, pero puede sacrificar al día, y la velocidad de lectura, entonces no tener un índice agrupado puede trabajar para tú. Un ejemplo sería si tuviera una tabla que se estaba utilizando como cola, por ejemplo, muchas inserciones que luego se leen y se mueven a una tabla diferente.
índices agrupados
Los índices agrupados organizan los datos de la tabla sobre la base de las columnas en el índice agrupado. Si se agrupa en algo incorrecto, por ejemplo, un identificador único, esto puede ralentizar las cosas (ver a continuación).
Siempre que su índice agrupado esté en el valor que se usa con más frecuencia para la búsqueda, y es único, y al aumentar, obtiene increíbles beneficios de rendimiento del índice agrupado.Por ejemplo, si tiene una tabla llamada USUARIOS en la que normalmente busca datos de usuario basados en USER_ID, la agrupación en USER_ID aceleraría el rendimiento de todas esas búsquedas. Esto simplemente reduce la cantidad de páginas de datos que deben leerse para obtener sus datos.
Si tiene demasiadas teclas en su índice agrupado esto puede ralentizar las cosas también.
Reglas generales de los índices agrupados:
No Cluster en las columnas VARCHAR.
La agrupación de columnas IDENTITY INT es lo mejor.
Clúster en lo que busca habitualmente.
La agrupación de UniqueIdentifiers
Con uniqueidentifiers en un índice, que son extremadamente ineficiente porque no hay un orden natural. Con base en la estructura del árbol B del índice, usted termina con índices extremadamente fragmentados al usar uniqueidentifiers. Después de reconstruir o reorganizar, todavía están extremadamente fragmentados. Así que terminas con un índice más lento, que termina siendo realmente enorme en la memoria y en el disco debido a la fragmentación. También en las inserciones del identificador único es más probable que termine con una división de página en el índice, lo que ralentiza su inserción. Generalmente, los únicos identificadores son malas noticias para los índices.
Resumen
Mi recomendación es que cada tabla debe tener un índice agrupado en él a menos que haya una buena razón para no hacerlo (es decir, la tabla que funciona como una cola).
Aquí es una cuestión relacionada con el [DBA-SE] (http://dba.stackexchange.com/) con algo de información y un par de enlaces donde se puede leer en. [Rendimiento de la No índices agrupados en montones vs índices agrupados] (http://dba.stackexchange.com/questions/9829/performance-of-non-clustered-indexes-on-heaps-vs-clustered-indexes) –
Probablemente una pregunta mejor respondida por alguien familiarizado con Oracle y SQL Server. [dba.se] podría ser una mejor ubicación para esto. –
Además, sugiero que mueva esta pregunta a dba.se. Se han recibido dos comentarios y una respuesta (pura coincidencia) de clientes habituales de DBA.SE sin que ninguno de los otros carteles haya detectado realmente que los índices agrupados y las IOT tienen diferencias significativas. – ConcernedOfTunbridgeWells