Bonjour.
J'ai un problème avec solution corrigée que je n'arrive pas comprendre.
Soit la requête suivante avec oracle :
voilà le plan :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 EXPLAIN PLAN SET statement_id = 'eds0' FOR select NomTGV from TGV, Arret where TGV.NumTGV = Arret.NumTGV and GareTerm = 'Aix';
et le détail des opérations correspondant donné en solution:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 0 SELECT STATEMENT 1 MERGE JOIN 2 SORT JOIN 3 TABLE ACCESS FULL ARRET 4 SORT JOIN 5 TABLE ACCESS FULL TGV
Ce que je ne comprends pas est pourquoi est-ce que le parcours de la table TGV est effectué en premier, alors que dans le plan explain c'est la dernière ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 1)On parcourt séquentiellement la table TGV et on sélectionne les TGV dont le terminus est Aix, on projète sur le numéro de TGV et le nom. On trie sur le numéro de TGV. 2) On lit la table Arret, on la projète sur le numéro de TGV et on trie sur le numéro de TGV. On fusionne les deux tables triées et on projète sur le nom de TGV
Pouvez vous me confirmer que l'ordre a une importance, et , si possible, pourquoi , merci de votre patience et bonnes fêtes de fin d'année.
Partager