Sugerencias son características de base de datos Oracle que permiten a los programadores dicen Oracle que ya saben la mejor ruta de ejecución de una consulta SQL y proporcionan información para ese camino para que Oracle va a adquirirla. Las sugerencias son órdenes sencillas que indican al optimizador a hacer lo que se le dice . Sugiriendo Consejos
Antes de comenzar el trabajo real para responder a una consulta, Oracle mira a su alrededor y toma una decisión sobre lo que piensa que es la mejor manera de realizar la consulta. Este es el optimizador. Determina la forma más eficiente de ejecutar una sentencia SQL después de considerar muchos rasgos relacionados con los objetos de referencia y de las circunstancias especificadas en la consulta.
Aunque el diseño de su aplicación mediante código elaborado inteligente, se va a encontrar que hay indicios necesarios para las declaraciones ante el optimizador sigue la ruta de ejecución "óptimo " . A veces, el optimizador puede requerir ayuda debido a defectos en su modelo o los problemas indígenas en la recogida , almacenamiento y procesamiento de datos complejos. Consejos pueden forzar al optimizador a hacer el mejor plan de ejecución para una consulta, no importa lo que la deficiencia. Sin embargo , lo que sugiere pistas para el optimizador debe utilizarse sólo cuando sea absolutamente necesario y si usted es un desarrollador con experiencia .
Tipos Sugerencia
Oracle tiene tres tipos de pistas.
Únete HintThe unión indirecta se utiliza cuando más de una tabla se utiliza en una consulta. Esta receta hace que el tipo de procedimiento de unión que se utiliza . Se une puede ser usado en SELECT, UPDATE y DELETE. La siguiente pista anticipado sugiere unirse órdenes :
/* + LÍDER ( [@ queryblock ] tablespec [ tablespec ] ... ) * /foto
Query hinta sugerencia de consulta se utiliza cuando la lógica específica tiene que ser funcional a una consulta de conjunto, en lugar de parte de ella . Por otro lado , no hay manera de determinar qué parte de una consulta se debe utilizar con la indirecta . Una consulta siempre tiene el SELECT, UPDATE , DELETE , INSERT o MERGE . La siguiente pista se puede utilizar con todos ellos :
select /* + * SUGERENCIA /namefrom empwhere id = 1 ;
HintHints tabla que especifica una tabla por lo general se refieren a las tablas en el DELETE, SELECT o UPDATE de una consulta en la que se produce la indirecta , no a las tablas dentro de las opiniones transmitidas por la declaración. El optimizador de consultas generalmente elige el mejor método de optimización sin ayudas se especifican . Sin embargo, aunque se especifica una sugerencia de tabla en el código, el optimizador de consultas puede ignorar la insinuación . Las sugerencias de tabla se ignorarán si la tabla no es elegido por el optimizador de consultas y utilizado en el plan de consultas sucesivas
select /* + * ALL_ROWS /employee_id , apellidos , salario, job_idfrom empwhere employee_id = 4,689 ; . < Br >