Il y a longtemps, j'ai été informé lors d'un parcours SQL que l'ordre de jointure dans une clause d'une requête peut avoir une incidence sur la performance de la requête. Donc, par exemple, si j'avais le suivant
SELECT * FROM TABLE_3 INNER JOIN --50 rows TABLE_2 ON TABLE_2.COL1=TABLE_3.COL1 INNER JOIN --200 rows TABLE_1 ON TABLE_1.COL1=TABLE_2.COL1 --5000 rows .....
3 Réponses :
Est-ce que la commande de jointure sans utiliser de principe dans une déclaration SQL? P> blockQuote>
Non. C'est l'optimisation de base pour la base de données; L'optimiseur décidera de quelle est la meilleure stratégie pour rejoindre les tables, quelle que soit la commande dans laquelle ils apparaissent dans la clause
de code>. p>
Exactement, un il y a longtemps em> il y avait un impact, lorsque RBO (optimiseur basé sur des règles) a été utilisé. p>
Dans les versions modernes Oracle, CBO (optimiseur basé sur le coût) choisit le meilleur plan d'exécution et que sale em> travail pour vous - non, vous n'avez plus besoin de réorganiser des tables. p>
Le composant Oracle Optimizer "Transformateur de requête" Transformez votre requête, cela le fait automatiquement si nécessaire avec les statistiques à la disposition des statistiques. Quand il trouve votre pour être transformé. P>