Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/06/2012, 14:31
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 10 meses
Puntos: 360
Respuesta: Qué hace un "+ 0 ="

Investigando un poco me encontré con una explicación (Me hubiese gustado que fuera en la doc de oracle) a este tema.

SELECT EMP.*,DEPT.DNAME FROM EMP WHERE EMP.DEPTNO = DEPT.DEPTNO + 0;

The + 0 (which is illogical) was used to disable the rule to use the index on the DEPT.DEPTNO column because it was
involved in a function and to prefer the nonunique index on EMP.DEPTNO. It looked ugly, but it worked in situations
where an application and the indexes couldn't be tuned anymore.


En pocas palabras, entiendo que hasta la versión 7, oracle realizaba sus planes de ejecución mediante RBO (Rule Based Optimizer)
Posterior a esta versión trabaja por defecto en CBO (Cost Bassed Optimizer) que permite obtener el plan de ejecución mas optimo
para la consulta haciendo uso de las estadisticas de las tablas.

Este juego de caracteres parece ser utilizado en versiones anteriores para deshabilitar ciertas reglas y guiar un poco a oracle en la construcción de su plan de ejecución.

La fuente es:
http://www.techrepublic.com/article/...le-10g/5219086

Espero aclare algunas dudas.

Saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming