Bonjour,
Je viens m'adresser aux experts Oracle, car y'a un truc qui me semble assez contre intuitif et sur lequel j'aimerai avoir des explications.
Imaginons deux tables :
contrat
ref_status
J'execute la requete suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select a.num_contrat, b.lib from contrat a left outer join ref_status b on a.status = b.status ;
Pour moi, c'est la bonne facon de faire. C'est jusqu'a présent comme ca que j'ai toujours rédigé mes requêtes.
Donc me voila avec ma requete qui a cette forme, et un de mes collègues s'occupe actuellement d'optimiser mon code car on a des problèmes de perf... Et justement, une de ces pistes d'amélioration, c'est de faire la chose suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select a.num_contrat, (select b.lib from ref_status b where a.status = b.status) as lib from contrat a ;
Et effectivement, quand je regarde par exemple le plan d'execution, ca semble améliorer entre autre le cout, et aussi d'autres choses...
Donc, est ce que vous pourriez m'expliquer si j'ai tord de faire comme je fais, et si je dois changer ma facon de faire les requetes par celle de mes collègues, ou alors, si mes collègues ont tord, pourquoi est ce que ca semble justement mieux marcher avec leur requète qu'avec la mienne ?
Merci d'avance pour vos réponses.
Steven
Partager