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

¿Cuándo un SQL correcto arrojará un resultado incorrecto?

Una cosa que puede hacer es aplicar la sugerencia NO_QUERY_TRANSFORMATION introducida en Oracle 10g.

Si esto produce el resultado deseado, sabrá que se enfrenta a un error de Oracle, ya que ninguna pista debería cambiar el resultado real de una consulta.

Al mismo tiempo, es posible que haya resuelto su problema, excepto que tal vez su plan de ejecución no sea satisfactorio.

El error al que se enfrenta (no sé si es un error conocido) es que el optimizador de Oracle puede no interpretar correctamente la intención de la consulta original al transformar la consulta para un mejor plan de ejecución (combinar vistas, etc.). Al usar la sugerencia, le indica al optimizador que no lo haga.

El fenómeno se ve con mayor frecuencia con consultas complejas que involucran vistas de rendimiento en línea.

Actualmente no tengo ejemplos de código para reproducir este problema, pero estoy trabajando en ello.

ACTUALIZACIÓN:Parece que esto es para lo que está destinada la sugerencia. Encontré esto:

documentación .