Problem de recherche timeout UNION

cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 - 26 juil. 2012 à 14:58
moietmonlego Messages postés 5 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 23 octobre 2012 - 31 juil. 2012 à 00:34
Bonjour,
j'ai un souci sur une requete avec UNION ( prend bcp trop de temps)

j'ai besoin d'afficher les stocks d'articles de differents stocks en fonction de ce qui a ete deja livré ou non

tout v bien et le temps de reponse est correct quand je le fais sur une seule table

cependant on veut egalement avoir a l'ecran des stocks d'autres societe par exemple

j'ai donc créé des tables identiques aux 1eres avec juste "externe" comme terminaison

au depart j'avais table stock ( avec id et libelle du stock) et table stock_article( avec id stock, id article et qté article)

meme avec 4 stock differents et plus de 3000 articles => 9000 stock_article j'ai un temps de reponse correcte (2s environ)

par contre des que je fais union des 2 ( avec exactement meme requete)
ca prend 10 fois plus de temps !!!!

je n'arrive pas a comprendre pourquoi

alors que dans stock_externe je n'ai en fait qu'n seul stock...

disons que dans mon 1er cas j'ai 4 stocks ( 1 depot , et 3 magasins) (dc la je devrais avoir 12000 lignes environ)
et ca fctionne nickel

ds mon 2e cas : je n'ai qu'un stock et je veux voir le stock depot du 1er
(dc la je dois avoir que 6000 lignes la moitié du 1er)

mais dans le 2e cas ca prend plus de 20s ...

j'ai testé en cherchant uniquement sur le stock externe , c'est quasi immediat
d'autre part sur le stock ( interne) c 'est quasi immédiat aussi

c'est l'union des 2 qui me pose probleme ...

comment puis je faire pour ameliorer ce temps de réponse svp ?

2 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
26 juil. 2012 à 22:20
Salut,

sans voir les requetes ce n'est pas évident de te répondre,

peut être utiliser UNION ALL pour éviter la recherche de doublons par le moteur

Ou passer par une table temp et faire 2 insert à la place de l'UNION
puis selectionner le tout depuis la table temp.

Bye...
0
moietmonlego Messages postés 5 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 23 octobre 2012
31 juil. 2012 à 00:34
Salut,
Pourquoi afficher le résultats des autres stock en ligne et pas en face de chaque produit par colonne ? L'UNION va chercher des distinct sur toutes tes colonnes et tes produits.

Slts
Mickael
0
Rejoignez-nous