Annexe2: Directives d'optimisation
Les directives d'optimisation guident l'optimiseur de requêtes pour le choix d'un plan d'exécution.
Syntaxe: les directives sont insérées dans la requêtes, après le mot SELECT, entre commentaires spéciaux :
/*+ nom_directive */
Utiliser les directives d'optimisation (hint) suivantes :
- /*+ ordered */ : fixe l'ordre de traitement des jointures : l'ordre imposé est celui indiqué dans la clause FROM de la requête.
- Pour forcer un accès par index:
/*+ index(nom_relation nom_index) */
- pour interdire l'utilisation d'un index:
/*+ no_index(nom_relation nom_index)*/
Ne pas confondre le nom de l'index et le nom de l'attribut indexé. Par exemple, I_J_cnum est le nom de l'index sur l'attribut cnum de J.
Exemple de directive pour ordonner les jointures
Le plan P1 avec l'ordre (J |><| C) |><| F
select /*+ ordered */ c.nom, f.budget
from J, C, F
where J.cnum = C.cnum and C.cnum = F.cnum
and c.division=1 and J.salaire > 59000
and j.sport = 'sport1';
retour vers LesJointures