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

¿Las restricciones de clave externa influyen en las transformaciones de consultas en Oracle?

Sí, tener restricciones de clave externa puede mejorar el rendimiento de las consultas. Hay varias transformaciones que están abiertas al optimizador cuando existen restricciones de clave externa apropiadas que generalmente no están disponibles. Por ejemplo, si te unieras a A y B pero solo seleccione datos de B , el optimizador podría eliminar A del plan de consulta por completo si había una restricción de clave externa (este tipo de cosas es muy útil cuando tiene vistas útiles que se unen en más tablas de las que su consulta actual necesita estrictamente porque no tiene que cambiar el costos de rendimiento de las uniones adicionales contra la reutilización del código al usar una vista existente). También son útiles cuando hace cosas como usar la reescritura de consultas para reescribir una consulta para usar una vista materializada en un almacén de datos/sistema de tipo DSS.

Tom Kyte tiene una presentación Metadata Matters que habla sobre cómo varios tipos de restricciones, junto con otras piezas de metadatos, pueden influir en el optimizador.