1. /*+TODAS_ROWS*/
Mostra que o método de otimização baseado em custos é selecionado para blocos de instruções e o melhor rendimento é obtido para minimizar o consumo de recursos.
Por exemplo:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
Mostra que o método de otimização baseado em custos é selecionado para blocos de instruções e o melhor tempo de resposta é obtido para minimizar o consumo de recursos.
Por exemplo:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
3. /*+ESCOLHER*/
Indica que se houver informação estatística sobre a tabela de acesso no dicionário de dados, o método de otimização será baseado no custo e o melhor rendimento será obtido se não houver informação estatística sobre a tabela de acesso no dicionário de dados; o método de otimização será baseado no custo da regra;
Por exemplo:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMMPMS WHERE EMP_NO='SCOTT';
4. /*+REGRA*/
Indica a seleção de métodos de otimização baseados em regras para blocos de instruções.
Por exemplo:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMMPMS WHERE EMP_NO='SCOTT';
5. /*+COMPLETO(TABELA)*/
Indica como selecionar uma varredura global para a tabela.
Por exemplo:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT';
6. /*+ROWID(TABELA)*/
O prompt indica claramente que a tabela especificada é acessada com base no ROWID.
Por exemplo:
SELECT /*+ROWID(BSEMMPMS)*/ * FROM BSEMMPMS ONDE ROWID>='AAAAAAAAAAAAAA'
E EMP_NO='SCOTT';
7. /*+CLUSTER(TABELA)*/
O prompt indica claramente que o método de acesso de varredura de cluster está selecionado para a tabela especificada, o que é válido apenas para objetos de cluster.
Por exemplo:
SELECIONE /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
ONDE DPT_NO='TEC304' E BSEMMPMS.DPT_NO=BSDPTMS.DPT_NO;
8. /*+INDEX(TABELA INDEX_NAME)*/
Indica o método de varredura para índices de seleção de tabela.
Por exemplo:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) USE SEX_INDEX PORQUE HÁ POUCOS BSEMPMS MASCULINOS */ FROM BSEMPMS WHERE SEX='M';
9. /*+INDEX_ASC(TABELA INDEX_NAME)*/
Indica um método de varredura que seleciona índices na tabela em ordem crescente.
Por exemplo:
SELECT /*+INDEX_ASC(BSEMMPMS PK_BSEMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
10. /*+INDEX_COMBINE*/
Selecione o caminho de acesso do bitmap para a tabela especificada. Se nenhum índice for fornecido como parâmetro em INDEX_COMBINE, a combinação booleana de índices de bitmap será selecionada.
Por exemplo:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
ONDE SAL<5000000 E HIREDATA
11. /*+INDEX_JOIN(TABELA INDEX_NAME)*/
O prompt instrui explicitamente o otimizador a usar o índice como caminho de acesso.
Por exemplo:
SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
DE BSEMMPMS ONDE SAL<60000;
12. /*+INDEX_DESC(TABELA INDEX_NAME)*/
Indica um método de varredura que seleciona índices na tabela em ordem decrescente.
Por exemplo:
SELECT /*+INDEX_DESC(BSEMMPMS PK_BSEMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
13. /*+INDEX_FFS(TABELA INDEX_NAME)*/
Execute uma verificação rápida e completa do índice na tabela especificada em vez de uma verificação completa da tabela.
Por exemplo:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';
14. /*+ADD_EQUAL TABELA INDEX_NAM1,INDEX_NAM2,...*/
Solicita que você selecione explicitamente o plano de execução e combine as varreduras de vários índices de coluna única.
Por exemplo:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306';
15. /*+USE_CONCAT*/
Converta a condição OR após WHERE na consulta em uma consulta combinada de UNION ALL.
Por exemplo:
SELECT /*+USE_CONCAT*/ * FROM BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
16. /*+NO_EXPAND*/
Para as instruções de consulta OR ou IN-LIST após WHERE, NO_EXPAND impedirá que sejam expandidas com base no otimizador.
Por exemplo:
SELECT /*+NO_EXPAND*/ * FROM BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
17. /*+AGORA ESCREVER*/
As operações de reescrita de consulta em blocos de consulta são proibidas.
18. /*+REESCREVER*/
As visualizações podem ser passadas como parâmetros.
19. /*+MERGE(TABELA)*/
Capaz de mesclar as várias consultas da visualização de acordo.
Por exemplo:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) COMO AVG_SAL DO GRUPO BSEMMPMS B POR DPT_NO) V ONDE A.DPT_NO=V.DPT_NO
E A.SAL>V.AVG_SAL;
20. /*+NO_MERGE(TABELA)*/
As visualizações que podem ser mescladas não são mais mescladas.
Por exemplo:
SELECT /*+NO_MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELECT DPT_NO,AVG(SAL) AS AVG_SAL FROM BSEMPMS B GROUP BY DPT_NO) V ONDE A.DPT_NO=V.DPT_NO E A.SAL>V.AVG_SAL;
21. /*+PEDIDO*/
De acordo com a ordem em que as tabelas aparecem em FROM, ORDERED faz com que o ORACLE se conecte a elas nessa ordem.
Por exemplo:
SELECIONE /*+ORDERED*/ A.COL1,B.COL2,C.COL3 DA TABELA1 A,TABELA2 B,TABELA3 C ONDE A.COL1=B.COL1 E B.COL1=C.COL1;
22. /*+USE_NL(TABELA)*/
Une a tabela especificada à origem da linha da junção aninhada, usando a tabela especificada como tabela interna.
Por exemplo:
SELECT /*+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(TABELA)*/
Une a tabela especificada com outras fontes de linha usando uma junção de classificação por mesclagem.
Por exemplo:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
24. /*+USE_HASH(TABELA)*/
Une a tabela especificada a outras fontes de linha usando uma junção hash.
Por exemplo:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(TABELA)*/
Força a execução da consulta em uma tabela diferente do local selecionado pelo ORACLE.
Por exemplo:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
26. /*+LÍDER(TABELA)*/
Use a tabela especificada como a primeira tabela na ordem de junção.
27. /*+CACHE(TABELA)*/
Ao executar uma varredura completa da tabela, a dica CACHE pode colocar o bloco de recuperação da tabela no final usado mais recentemente da lista LRU menos recente no cache do buffer.
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
28. /*+NOCACHE(TABELA)*/
Ao executar uma varredura completa da tabela, a dica CACHE pode colocar o bloco de recuperação da tabela no final usado mais recentemente da lista LRU menos recente no cache do buffer.
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
29. /*+ANEXAR*/
Inserir diretamente no final da mesa pode melhorar a velocidade.
Por exemplo:
insira /*+append*/ em test1 selecione * de test4 ;
30. /*+NOAPPEND*/
Inicia inserções regulares parando o modo paralelo durante o tempo de vida da instrução insert.
Por exemplo:
insira /*+noappend*/ em test1 selecione * de