Ecriture de query avec select dans select
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:
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:
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