Bonjour,

J'ai actuellement une requète de ce type:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select count(*) from fonction(x) as fonc INNER JOIN (gros select avec plusieurs sous select et jointure) as grossetable ON fonc.id=grossetable.id AND fonc.chaine=grossetable.chaine
Chaque table comprend environ 40 000 lignes

Cette requète dure trés longtemps (environ 5 minutes)

Si je concatene la jointure pour avoir une seule condition de jointure de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
select count(*) from fonction(x) as fonc INNER JOIN (gros select avec plusieurs sous select et jointure) as grossetable ON ltrim(rtrim(str(fonc.id)+fonc.chaine=ltrim(rtrim(str(grossetable.id)+grossetable.chaine
LE résultat est immédiat


Je ne peux pas vous donné les plan de requète car je ne sais pas faire...
Mais j'aurais voulu juste savoir s'il pourrait y avoir une explication logique et si je dois faire cela sur toute mes doubles jointure pour gagner en performance ?

Par avance merci pour vos lumière

Sylo