1. /*+ALL_ROWS*/
Il montre que la méthode d'optimisation basée sur les coûts est sélectionnée pour les blocs d'instructions et que le meilleur débit est obtenu pour minimiser la consommation de ressources.
Par exemple:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
2. /*+FIRST_ROWS*/
Il montre que la méthode d'optimisation basée sur les coûts est sélectionnée pour les blocs d'instructions et que le meilleur temps de réponse est obtenu pour minimiser la consommation de ressources.
Par exemple:
SELECT /*+FIRST_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT';
3. /*+CHOISIR*/
Il indique que s'il existe des informations statistiques sur la table d'accès dans le dictionnaire de données, la méthode d'optimisation sera basée sur le coût et le meilleur débit sera obtenu s'il n'y a pas d'informations statistiques sur la table d'accès dans le dictionnaire de données, le la méthode d'optimisation sera basée sur le coût de la règle ;
Par exemple:
SELECT /*+CHOOSE*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMMPMS WHERE EMP_NO='SCOTT';
4. /*+RÈGLE*/
Indique la sélection de méthodes d'optimisation basées sur des règles pour les blocs d'instructions.
Par exemple:
SELECT /*+ RULE */ EMP_NO,EMP_NAM,DAT_IN FROM BSEMMPMS WHERE EMP_NO='SCOTT';
5. /*+COMPLET(TABLE)*/
Indique comment sélectionner une analyse globale pour la table.
Par exemple:
SELECT /*+FULL(A)*/ EMP_NO,EMP_NAM FROM BSEMPMS A WHERE EMP_NO='SCOTT';
6. /*+ROWID(TABLE)*/
L'invite indique clairement que l'accès à la table spécifiée est basé sur ROWID.
Par exemple:
SELECT /*+ROWID(BSEMMPMS)*/ * FROM BSEMMPMS WHERE ROWID>='AAAAAAAAAAAAAAAA'
ET EMP_NO='SCOTT';
7. /*+CLUSTER(TABLE)*/
L'invite indique clairement que la méthode d'accès de l'analyse de cluster est sélectionnée pour la table spécifiée, ce qui n'est valable que pour les objets de cluster.
Par exemple:
SELECT /*+CLUSTER */ BSEMPMS.EMP_NO,DPT_NO FROM BSEMPMS,BSDPTMS
OÙ DPT_NO='TEC304' ET BSEMMPMS.DPT_NO=BSDPTMS.DPT_NO ;
8. /*+INDEX(TABLE INDEX_NOM)*/
Indique la méthode d'analyse pour les index de sélection de table.
Par exemple:
SELECT /*+INDEX(BSEMPMS SEX_INDEX) UTILISER SEX_INDEX CAR IL Y A PEU DE BSEMPMS MÂLES */ FROM BSEMPMS WHERE SEX='M';
9. /*+INDEX_ASC(TABLE INDEX_NAME)*/
Indique une méthode d'analyse qui sélectionne les index de la table par ordre croissant.
Par exemple:
SELECT /*+INDEX_ASC(BSEMMPMS PK_BSEMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
10. /*+INDEX_COMBINE*/
Sélectionnez le chemin d'accès bitmap pour la table spécifiée. Si aucun index n'est fourni en paramètre dans INDEX_COMBINE, la combinaison booléenne d'index bitmap sera sélectionnée.
Par exemple:
SELECT /*+INDEX_COMBINE(BSEMPMS SAL_BMI HIREDATE_BMI)*/ * FROM BSEMPMS
OÙ SAL<5000000 ET HIREDATE
11. /*+INDEX_JOIN(TABLE INDEX_NAME)*/
L'invite demande explicitement à l'optimiseur d'utiliser l'index comme chemin d'accès.
Par exemple:
SELECT /*+INDEX_JOIN(BSEMPMS SAL_HMI HIREDATE_BMI)*/ SAL,HIREDATE
DEPUIS BSEMMPMS OÙ SAL<60000 ;
12. /*+INDEX_DESC(TABLE INDEX_NAME)*/
Indique une méthode d'analyse qui sélectionne les index de la table par ordre décroissant.
Par exemple:
SELECT /*+INDEX_DESC(BSEMMPMS PK_BSEMPMS) */ FROM BSEMMPMS WHERE DPT_NO='SCOTT';
13. /*+INDEX_FFS(TABLE INDEX_NAME)*/
Effectuez une analyse rapide d'index complet sur la table spécifiée au lieu d'une analyse complète de la table.
Par exemple:
SELECT /*+INDEX_FFS(BSEMPMS IN_EMPNAM)*/ * FROM BSEMPMS WHERE DPT_NO='TEC305';
14. /*+ADD_EQUAL TABLE INDEX_NAM1,INDEX_NAM2,...*/
Vous invite à sélectionner explicitement le plan d'exécution et à combiner les analyses de plusieurs index à colonne unique.
Par exemple:
SELECT /*+INDEX_FFS(BSEMPMS IN_DPTNO,IN_EMPNO,IN_SEX)*/ * FROM BSEMPMS WHERE EMP_NO='SCOTT' AND DPT_NO='TDC306';
15. /*+USE_CONCAT*/
Convertissez la condition OR après WHERE dans la requête en une requête combinée de UNION ALL.
Par exemple:
SELECT /*+USE_CONCAT*/ * FROM BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
16. /*+NO_EXPAND*/
Pour les instructions de requête OR ou IN-LIST après WHERE, NO_EXPAND empêchera leur développement en fonction de l'optimiseur.
Par exemple:
SELECT /*+NO_EXPAND*/ * FROM BSEMMPMS WHERE DPT_NO='TDC506' AND SEX='M';
17. /*+NOWRITER*/
Les opérations de réécriture de requêtes sur les blocs de requêtes sont interdites.
18. /*+RÉÉCRIRE*/
Les vues peuvent être transmises en tant que paramètres.
19. /*+FUSION(TABLE)*/
Capable de fusionner les différentes requêtes de la vue en conséquence.
Par exemple:
SELECT /*+MERGE(V) */ A.EMP_NO,A.EMP_NAM,B.DPT_NO FROM BSEMPMS A (SELET DPT_NO
,AVG(SAL) AS AVG_SAL FROM BSEMMPMS B GROUP BY DPT_NO) V OÙ A.DPT_NO=V.DPT_NO
ET A.SAL>V.AVG_SAL;
20. /*+NO_MERGE(TABLE)*/
Les vues pouvant être fusionnées ne sont plus fusionnées.
Par exemple:
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 OÙ A.DPT_NO=V.DPT_NO ET A.SAL>V.AVG_SAL;
21. /*+COMMANDÉ*/
Selon l'ordre dans lequel les tables apparaissent dans FROM, ORDERED amène ORACLE à s'y connecter dans cet ordre.
Par exemple:
SELECT /*+ORDERED*/ A.COL1,B.COL2,C.COL3 FROM TABLE1 A,TABLE2 B,TABLE3 C OÙ A.COL1=B.COL1 ET B.COL1=C.COL1 ;
22. /*+USE_NL(TABLE)*/
Joint la table spécifiée avec la source de ligne de la jointure imbriquée, en utilisant la table spécifiée comme table interne.
Par exemple:
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(TABLE)*/
Joint la table spécifiée avec d’autres sources de lignes à l’aide d’une jointure de tri par fusion.
Par exemple:
SELECT /*+USE_MERGE(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
24. /*+USE_HASH(TABLE)*/
Joint la table spécifiée avec d'autres sources de lignes à l'aide d'une jointure par hachage.
Par exemple:
SELECT /*+USE_HASH(BSEMPMS,BSDPTMS)*/ * FROM BSEMPMS,BSDPTMS WHERE BSEMPMS.DPT_NO=BSDPTMS.DPT_NO;
25. /*+DRIVING_SITE(TABLE)*/
Force l'exécution de la requête vers une table différente de l'emplacement sélectionné par ORACLE.
Par exemple:
SELECT /*+DRIVING_SITE(DEPT)*/ * FROM BSEMPMS,DEPT@BSDPTMS WHERE BSEMPMS.DPT_NO=DEPT.DPT_NO;
26. /*+PREMIER(TABLE)*/
Utilisez la table spécifiée comme première table dans l'ordre de jointure.
27. /*+CACHE(TABLE)*/
Lors de l'exécution d'une analyse complète de la table, l'indicateur CACHE peut placer le bloc de récupération de la table à l'extrémité la plus récemment utilisée de la liste LRU la plus récente dans le cache tampon. Par exemple :
SELECT /*+FULL(BSEMPMS) CAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
28. /*+NOCACHE(TABLE)*/
Lors de l'exécution d'une analyse complète de la table, l'indicateur CACHE peut placer le bloc de récupération de la table à l'extrémité la plus récemment utilisée de la liste LRU la plus récente dans le cache tampon. Par exemple :
SELECT /*+FULL(BSEMPMS) NOCAHE(BSEMPMS) */ EMP_NAM FROM BSEMPMS;
29. /*+AJOUTER*/
L'insertion directement au bout de la table peut améliorer la vitesse.
Par exemple:
insérez /*+append*/ dans test1 select * from test4 ;
30. /*+NOAPPEND*/
Démarre les insertions régulières en arrêtant le mode parallèle pendant la durée de vie de l'instruction insert.
Par exemple:
insérer /*+noappend*/ dans test1 sélectionner * from