Est'il possible d'imposé un plan d'éxécution pour une requète donné afin que l'on ne passe pas par l'optimiseur ? si oui comment ? Une demande de tuning pour un dévellopreur.
Merci d'avance![]()
Est'il possible d'imposé un plan d'éxécution pour une requète donné afin que l'on ne passe pas par l'optimiseur ? si oui comment ? Une demande de tuning pour un dévellopreur.
Merci d'avance![]()
Bonjour
J'utilise la commande 'set forceplan on' avant la requete
Cette commande permet de forcer le plan dans l'ordre de la clause 'from'
Elle peut etre souvent combinée avec la commande force index
ex :
Le plan sera : table scan sur table1 puis index idx_2 sur table2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 set forceplan on select a.col1,b.col1,b.col3 from table1 a, table2 b (index idx_2) -- force l'index idx_2 where a.col2=b.col2
Je sais pas si j'ai été assez clair
N'hesite pas a me dire
jeeps64
On peut aussi utiliser des plans d'exécutions synthétiques, qui permettent de diriger l'optimiseur un peu, ou beaucoup. Ce n'est de loin pas trivial à mettre en place - c'est tout un language qu'il faut apprendre/comprendre. Pour plus d'info lire le chapitre sur "Abstract Query Plans" dans le Performance and Tuning guide.
Michael
... mais de manière plus trivial, essayez de comprendre le comportement de l'optimiseur : s'il se plante, c'est bien souvent pour une raison que l'on peut traiter !
Forcer un plan doit être la méthode ulitme quand on a bien déterminé l'erreur de l'optimiseur.
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
Bonjour,
Il est possible de creer des abstract plan et de les utiliser dans les requetes.
Je n'ai jamais utilisé ce genre de commandes mais si tu lis l'anglais tu pourras trouver des infos ici :
http://manuals.sybase.com/onlinebook.../22465;td=50#X
Au chapitre 16
Sinon en plus simple peut etre que seulement forcer les indexs (meme si ce n'est pas tres elegant) suffit à répondre à la demande (cf la reponse de jeeps64)
Partager