¿Qué debe usarse después de estropear el índice agrupado? Actualizar estadísticas, reindex o reorganizar

dba.stackexchange https://dba.stackexchange.com/questions/16702

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

¿Fue útil?

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.

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