2010-10-15 11 views
5

Estoy realizando algunas grandes consultas de eliminación basadas en fechas en tablas con índices en campos distintos de la fecha. Me han dicho que eliminar esos índices, realizar la eliminación y luego volver a compilar el índice podría ser más rápido que solo ejecutar la eliminación en la tabla indexada. ¿Es este el caso?¿Se puede eliminar y volver a crear un índice para acelerar una eliminación de SQL?

Puedo ver por qué la eliminación real de registros sería más rápida sin un índice, pero siento que el hecho de tener que reconstruirlo más tarde anularía cualquier ventaja de velocidad obtenida.

Respuesta

1

Al tomar la decisión de eliminar los índices primero, tiene que comparar el costo (o tiempo) para mantener el índice durante una eliminación con el costo de volver a crear el índice después de la eliminación. Dos de los factores más influyentes son el número de filas en la tabla y el número o filas que se eliminan.

Cuando el recuento de filas es pequeño o el recuento de filas para eliminar es pequeño, no se beneficiará al eliminar los índices primero. Pero, si tiene una tabla grande y muchas filas para eliminar, el costo de actualizar el índice aumenta hasta que llega al punto en el que es más costoso mantener el índice que eliminar y volver a crear el índice.

Como indica que está realizando varias eliminaciones grandes, mi corazonada es que tiene una situación en la que la eliminación y la recreación de índices ayudarán.

0

Si sus índices tienen un factor de llenado deficiente, estoy seguro de que sí.

Cuestiones relacionadas