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

Rendimiento:subconsulta o unión

Los RDBM modernos, incluido Oracle, optimizan la mayoría de las uniones y subconsultas con el mismo plan de ejecución.

Por lo tanto, continuaría y escribiría su consulta de la manera que sea más simple para usted y me concentraría en asegurarme de que haya optimizado completamente sus índices.

Si proporciona su consulta final y el esquema de su base de datos, es posible que podamos ofrecerle sugerencias detalladas, incluida información sobre posibles problemas de bloqueo.

Editar

Estos son algunos consejos generales que se aplican a su consulta:

  • Para las uniones, asegúrese de tener un índice en las columnas en las que se está uniendo. Asegúrese de aplicar un índice a las columnas unidas en ambas tablas. Puede pensar que solo necesita el índice en una dirección, pero debe indexar ambos, ya que a veces la base de datos determina que es mejor unirse en la dirección opuesta.
  • Para las cláusulas WHERE, asegúrese de tener índices en las columnas mencionadas en WHERE.
  • Para insertar muchas filas, es mejor si puede insertarlas todas en una sola consulta.
  • Para insertar en una tabla con un índice agrupado, es mejor si inserta con valores incrementales para el índice agrupado para que las nuevas filas se agreguen al final de los datos. Esto evita la reconstrucción del índice y, a menudo, evita los bloqueos en los registros existentes, lo que ralentizaría las consultas SELECT en las filas existentes. Básicamente, las inserciones se vuelven menos dolorosas para otros usuarios del sistema.