¿Qué debe usarse después de estropear el índice agrupado? Actualizar estadísticas, reindex o reorganizar
-
22-10-2019 - |
Pregunta
Si tengo un índice de columna de una sola columna, por ejemplo, FooId
en SQL Server 2008, 2012 y sé que he arruinado el orden de las filas para no tener un orden secuencial del FooId
columna ya, qué comandos deben usarse:
- Estadísticas de actualización
- Reconstruir
- Reorganizar
EDITAR
GuiónFooId
es una PK agrupada de tipo de identificación único secuencial, pero para mantenerlo simple en esta publicación usamos #1 como valores de identificación.
#1 inserted
#2 inserted
#3 inserted
#1 selected
#1 deleted
#2 selected
#2 deleted
#2 inserted
(Eso está reutilizando la PK agrupada del #1)
#1 inserted
(Eso está reutilizando la PK agrupada del #1)
¿No va a romper el orden secuencial? ¿No se almacenará así ahora?
#3
#2
#1
//Daniel
Solución
Es posible que haya entendido mal la forma en que funciona un índice agrupado - por definición Los datos se ordenan lógicamente en la secuencia de la tecla de agrupación, aunque es posible que el índice agrupado se fragmente físicamente a medida que se producen las placas de página cuando se insertan nuevos datos.
Si quieres reducir la fragmentación REBUILD
o REORGANIZE
puede ser apropiado. La regla general es no hacer nada cuando la fragmentación es inferior al 5%, REORGANIZE
Cuando la fragmentación está entre 5% y 30%, y REBUILD
Cuando la fragmentación está por encima del 30%.
La fragmentación del índice se registra en el DMV sys.dm_db_index_physical_stats. Ver también la página msdn en REBUILD/REORGANIZE
Vale la pena señalar que a menos que esté ejecutando SQL Server Enterprise Edition, REBUILD
No se puede realizar en línea, lo que significa que su tabla será inaccesible durante la duración del comando. REORGANIZE
siempre se lleva a cabo en línea.