sql >> Base de Datos >  >> RDS >> Oracle

Oracle 11G:efecto de rendimiento de la indexación en la inserción

Es cierto que es más rápido modificar una tabla si no tiene que modificar uno o más índices y posiblemente también realizar una verificación de restricciones, pero también es en gran medida irrelevante si luego tiene que agregar esos índices. Debe considerar el cambio completo en el sistema que desea efectuar, no solo una parte del mismo.

Obviamente, si está agregando una sola fila a una tabla que ya contiene millones de filas, sería una tontería descartar y reconstruir índices.

Sin embargo, incluso si tiene una tabla completamente vacía en la que va a agregar varios millones de filas, puede ser más lento posponer la indexación hasta después.

La razón de esto es que tal inserción se realiza mejor con el mecanismo de ruta directa, y cuando usa inserciones de ruta directa en una tabla con índices, se crean segmentos temporales que contienen los datos necesarios para construir los índices (datos más ID de fila ). Si esos segmentos temporales son mucho más pequeños que la tabla que acaba de cargar, también serán más rápidos para escanear y construir los índices.

la alternativa, si tiene cinco índices en la tabla, es realizar cinco exploraciones completas de la tabla después de haberla cargado para generar los índices.

Obviamente, hay grandes áreas grises involucradas aquí, pero bien hecho por:

  1. Cuestionar la autoridad y las reglas generales, y
  2. Ejecutar pruebas reales para determinar los hechos en su propio caso.

Editar:

Otras consideraciones:ejecuta una copia de seguridad mientras se eliminan los índices. Ahora, después de una restauración de emergencia, debe tener una secuencia de comandos que verifique que todos los índices estén en su lugar, cuando tenga el negocio detrás de usted para recuperar el sistema.

Además, si estaba absolutamente decidido a no mantener los índices durante una carga masiva, no los elimine; en su lugar, desactívelos. Esto conserva los metadatos para la existencia y definición de índices y permite un proceso de reconstrucción más simple. Solo tenga cuidado de no volver a habilitar los índices accidentalmente truncando la tabla, ya que esto hará que los índices deshabilitados se vuelvan a habilitar.