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.
- /*+ index(nom_relation nom_index) */ : pour forcer un accès par index
- /*+ no_index(nom_relation nom_index) */ : pour interdire l'utilisation d'un 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