Pour compléter au plan général quant au rôle d'EXPLAIN :
Quand vous codez une instruction SELECT, vous êtes au stade du QUOI, vous ne dites pas COMMENT les tables seront accédées. C’est l’optimiseur du SGBD qui s’en chargera, en fonction notamment de la volumétrie des tables et des turbos (les index) branchés sur ces tables. Quand une requête se traîne, c’est bien souvent parce qu’un index qui va bien est absent. Pour en avoir le cœur net, vous demandez au SGBD d’expliquer la stratégie qu’il a mise en œuvre, comment il procède pour fournir le résultat du SELECT. Pour peu qu’il dise qu’il effectue des produits cartésiens, ça explique bien des choses. L’optimiseur s’explique quand on code : 
 EXPLAIN PLAN FOR SELECT xxx
Où xxx représente le corps de votre SELECT.
						
					 
					
				
Partager