1. /*+TODAS_ROWS*/
Muestra que se selecciona el método de optimización basado en costos para los bloques de declaraciones y se obtiene el mejor rendimiento para minimizar el consumo de recursos.
Por ejemplo:
SELECCIONE /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
Muestra que se selecciona el método de optimización basado en costos para los bloques de declaraciones y se obtiene el mejor tiempo de respuesta para minimizar el consumo de recursos.
Por ejemplo:
SELECCIONE /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
3. /*+ELIGE*/
Indica que si hay información estadística sobre la tabla de acceso en el diccionario de datos, el método de optimización se basará en el costo y se obtendrá el mejor rendimiento si no hay información estadística sobre la tabla de acceso en el diccionario de datos; el método de optimización se basará en el costo de la regla;
Por ejemplo:
SELECCIONE /*+ELIJA*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMMPMS WHERE EMP_NO='SCOTT';
4. /*+REGLA*/
Indica la selección de métodos de optimización basados en reglas para bloques de instrucciones.
Por ejemplo:
SELECCIONE /*+ REGLA */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMMPMS WHERE EMP_NO='SCOTT';
5. /*+COMPLETO(TABLA)*/
Indica cómo seleccionar un escaneo global para la tabla.
Por ejemplo:
SELECCIONE /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT';
6. /*+ROWID(TABLA)*/
El mensaje indica claramente que se accede a la tabla especificada según ROWID.
Por ejemplo:
SELECCIONE /*+ROWID(BSEMMPMS)*/ * DESDE BSEMMPMS DONDE ROWID>='AAAAAAAAAAAAAAA'
Y EMP_NO='SCOTT';
7. /*+CLUSTER(TABLA)*/
El mensaje indica claramente que se selecciona el método de acceso de escaneo de clúster para la tabla especificada, que solo es válido para objetos de clúster.
Por ejemplo:
SELECCIONE /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO DE BSEMPMS,BSDPTMS
DONDE DPT_NO='TEC304' AND BSEMMPMS.DPT_NO=BSDPTMS.DPT_NO;
8. /*+ÍNDICE(TABLA ÍNDICE_NOMBRE)*/
Indica el método de escaneo para índices de selección de tablas.
Por ejemplo:
SELECCIONE /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX PORQUE HAY POCOS BSEMPMS MASCULINOS */ FROM BSEMPMS DONDE SEX='M';
9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
Indica un método de escaneo que selecciona índices en la tabla en orden ascendente.
Por ejemplo:
SELECCIONE /*+INDEX_ASC(BSEMMPMS PK_BSEMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
10. /*+INDEX_COMBINE*/
Seleccione la ruta de acceso al mapa de bits para la tabla especificada. Si no se proporciona ningún índice como parámetro en INDEX_COMBINE, se seleccionará la combinación booleana de índices de mapa de bits.
Por ejemplo:
SELECCIONAR /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
DONDE SAL<5000000 Y CONTRATADO
11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
El mensaje indica explícitamente al optimizador que utilice el índice como ruta de acceso.
Por ejemplo:
SELECCIONAR /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
DE BSEMMPMS DONDE SAL<60000;
12. /*+INDEX_DESC(TABLE INDEX_NAME)*/
Indica un método de escaneo que selecciona índices en la tabla en orden descendente.
Por ejemplo:
SELECCIONAR /*+INDEX_DESC(BSEMMPMS PK_BSEMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
13. /*+INDEX_FFS(TABLE INDEX_NAME)*/
Realice un escaneo rápido del índice completo en la tabla especificada en lugar de un escaneo completo de la tabla.
Por ejemplo:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';
14. /*+ADD_EQUAL TABLA INDEX_NAM1,INDEX_NAM2,...*/
Le solicita que seleccione explícitamente el plan de ejecución y combine los escaneos de varios índices de una sola columna.
Por ejemplo:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306';
15. /*+USE_CONCAT*/
Convierta la condición OR después de WHERE en la consulta en una consulta combinada de UNION ALL.
Por ejemplo:
SELECCIONE /*+USE_CONCAT*/ * FROM BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
16. /*+NO_EXPAND*/
Para las declaraciones de consulta OR o IN-LIST después de WHERE, NO_EXPAND evitará que se expandan según el optimizador.
Por ejemplo:
SELECCIONE /*+NO_EXPAND*/ * FROM BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
17. /*+AHORA ESCRIBIR*/
Están prohibidas las operaciones de reescritura de consultas en bloques de consultas.
18. /*+REESCRIBIR*/
Las vistas se pueden pasar como parámetros.
19. /*+FUSIONAR(TABLA)*/
Capaz de fusionar las diversas consultas de la vista en consecuencia.
Por ejemplo:
SELECCIONAR /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) COMO AVG_SAL DEL GRUPO BSEMMPMS B POR DPT_NO) V DONDE A.DPT_NO=V.DPT_NO
Y A.SAL>V.AVG_SAL;
20. /*+NO_MERGE(TABLA)*/
Las vistas que se pueden fusionar ya no se fusionan.
Por ejemplo:
SELECCIONE /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO DE BSEMPMS A (SELECCIONE DPT_NO,AVG(SAL) COMO AVG_SAL DE BSEMPMS B GRUPO POR DPT_NO) V DONDE A.DPT_NO=V.DPT_NO Y A.SAL>V.AVG_SAL;
21. /*+ORDENADO*/
Según el orden en que aparecen las tablas en FROM, ORDERED hace que ORACLE se conecte a ellas en ese orden.
Por ejemplo:
SELECCIONE /*+ORDENADO*/ A.COL1,B.COL2,C.COL3 DE LA TABLA1 A,TABLA2 B,TABLA3 C DONDE A.COL1=B.COL1 Y B.COL1=C.COL1;
22. /*+USE_NL(TABLA)*/
Une la tabla especificada con el origen de fila de la combinación anidada, utilizando la tabla especificada como tabla interna.
Por ejemplo:
SELECCIONE /*+ORDERED USE_NL(BSEMPMS)*/ BSDPTMS.DPT_NO,BSEMPMS.EMP_NO,BSEMPMS.EMP_NAM FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
23. /*+USE_MERGE(TABLA)*/
Une la tabla especificada con otros orígenes de filas mediante una combinación de clasificación por combinación.
Por ejemplo:
SELECCIONAR /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS DONDE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
24. /*+USE_HASH(TABLA)*/
Une la tabla especificada con otras fuentes de filas mediante una combinación hash.
Por ejemplo:
SELECCIONE /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS DONDE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+SITIO_CONDUCCIÓN(TABLA)*/
Fuerza la ejecución de la consulta a una tabla que es diferente de la ubicación seleccionada por ORACLE.
Por ejemplo:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
26. /*+PRINCIPAL(TABLA)*/
Utilice la tabla especificada como la primera tabla en el orden de unión.
27. /*+CACHÉ(TABLA)*/
Al realizar un escaneo completo de la tabla, la sugerencia CACHE puede colocar el bloque de recuperación de la tabla en el extremo utilizado más recientemente de la lista LRU menos reciente en el caché del búfer.
SELECCIONE /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
28. /*+NOCACHE(TABLA)*/
Al realizar un escaneo completo de la tabla, la sugerencia CACHE puede colocar el bloque de recuperación de la tabla en el extremo utilizado más recientemente de la lista LRU menos reciente en el caché del búfer.
SELECCIONAR /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
29. /*+APENDAR*/
Insertar directamente en el extremo de la mesa puede mejorar la velocidad.
Por ejemplo:
inserte /*+append*/ en prueba1 seleccione * de prueba4;
30. /*+NOAPENDAR*/
Inicia inserciones regulares deteniendo el modo paralelo durante la vida útil de la declaración de inserción.
Por ejemplo:
inserte /*+noappend*/ en test1 seleccione * de