Esta pregunta trata de lo que sucede con la reorganización de datos en un índice agrupado cuando se realiza una inserción. Supongo que debería ser más costoso hacer inserciones en una tabla que tiene un índice agrupado que una que no lo hace porque reorganizar los datos en un índice agrupado implica cambiar el diseño físico de los datos en el disco. No estoy seguro de cómo expresar mi pregunta, excepto a través de un ejemplo que encontré en el trabajo.Índice agrupado: índice de varias partes frente a parte única y efectos de inserciones/eliminaciones
Supongamos que hay una tabla (basura) y hay dos consultas que se realizan en la tabla, la primera busca por Nombre y la segunda busca por Nombre y Algo. Como estoy trabajando en la base de datos descubrí que la tabla se ha creado con dos índices, uno para apoyar cada consulta, así:
--drop table Junk1
CREATE TABLE Junk1
(
Name char(5),
Something char(5),
WhoCares int
)
CREATE CLUSTERED INDEX IX_Name ON Junk1
(
Name
)
CREATE NONCLUSTERED INDEX IX_Name_Something ON Junk1
(
Name, Something
)
Ahora cuando miraba a los dos índices, parece que es IX_Name redundante dado que IX_Name_Something puede ser utilizado por cualquier consulta que desee buscar por Nombre. Así que me gustaría eliminar IX_Name y hacer IX_Name_Something el índice agrupado en su lugar:
--drop table Junk2
CREATE TABLE Junk2
(
Name char(5),
Something char(5),
WhoCares int
)
CREATE CLUSTERED INDEX IX_Name_Something ON Junk2
(
Name, Something
)
Alguien sugirió que el primer esquema de indexación debe mantenerse ya que resultaría en más eficientes inserciones/eliminaciones (suponiendo que no hay necesidad de preocuparse actualizaciones para Nombre y Algo). ¿Eso tendría sentido? Creo que el segundo método de indexación sería mejor, ya que significa que se necesita mantener un índice menor.
Agradecería cualquier idea sobre este ejemplo específico o me indicará más información sobre el mantenimiento de los índices agrupados.
Explicación agradable y completa. –