|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
salut à tous
bon alors brevement je dois remonter tous les enregistrement dune table CA = chiffres d'affaires cette table contient les valeurs du chiffres d'affaire journalier de chaque magasin pour chaque jour de chaque année depuis 1994 CA : id_ca int auto increment num_mag varchar = numéro du magasin date_ca date = date du ca valeur_ca : montant du ca du jour pour le magasin donc je fais un select sur ma table et avec une "moulinette" je dois calculer le ca mensuel de chaque magasin + le ca de lannée -1 et le ca de lannée -2 , avec les pourcentage daugmentation ou diminution et bien sur afficher le tout sur ma page et evidemment le script est super long ... donc je chercher une solution pour diminuer le temps d'execution, sans changer le timeout du serveur bien evidemment merci à tous |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Pas facile d'optimiser du code sans le voir
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() |
deja je separerais les requetes et l'affichage, je mexplique :
je fais mon traitement et je sauvegarde les valeurs dans un tableau puis je libere les ressources sql puis jaffiche mon tableau mais bon a voir peut etre quil y a mieux a faire
__________________
Colorez votre code PHP sur les forums grâce à Developpez.com |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Déjà je vois pas l'intérêt de l'utilisation des LIKE, une comparaison classique avec = (plus économique) semble suffire.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#7 |
|
Membre expérimenté
![]() |
j'eviterais aussi les select * et je mettrais le noms des champs qui m'interessent
__________________
Colorez votre code PHP sur les forums grâce à Developpez.com |
|
|
00
|
|
|
#8 | |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 |
|
Membre expérimenté
![]() |
dans ce cas la je pense pas
__________________
Colorez votre code PHP sur les forums grâce à Developpez.com |
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
sinon pas d'autres idées pour alleger le traitement ?
passer par des vues sql peut etre ? |
|
|
00
|
|
|
#11 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
les vues MySQL ne sont pas compilées, donc aucun gain de perf de ce côté-là
|
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
donc en gros je suis dans la merde quoi lol
obligé de faire patienter les internautes 40 secondes pour laffichage de la page et encore 40 secondes en local, j'imagines meme pas ceux qui ont du 512 ou encore pire du 56k enfin bref, merci a ceux qui m'ont repondu, et si d'autres ont des idées , n'hesitez surtout , mais alors surtout pas à m'en faire part |
|
|
00
|
|
|
#13 | |
|
Expert Confirmé
![]() ![]() Inscription : juillet 2004 Messages : 2 684 ![]() |
Citation:
Pour le débit je pense pas que ça joue c'est pas le volume de donnés transférées qui pose problème mais la génération de la page côté serveur donc c'est de ce côté là que sont limitées matériellement les perfs.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace. Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h) |
|
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Analyste - Programmeur Inscription : mai 2006 Messages : 712 ![]() |
Ton select donne combien de resultat peut < 20 ou beaucoup > 100 ?
|
|
|
00
|
|
|
#15 | |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
Citation:
pourtant le serveur il est tout beau tout neuf en mode PATATE, mais bon ... je pense que je vais faire une table temporaire qui contiendra les calculs deja faits, au moins il n'y aura que le premier user qui se tapera les calculs, les autres on ira taper directement dans les données de la table calculé, ça devrait etre plus rapide |
|
|
|
00
|
|
|
#16 | |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
Citation:
mais ma table CA, qui contient donc chaque chiffre d'affaire quotidien de tous les magasins depuis 1994, donc au final dans ma table CA j'ai pas loin de 400 000 enregistrements ! et dans le select qui me permet d'afficher ma page on a : nombre de magasins ^ (numéro du jour choisi), tu captes ? si tu choisis de voir le chiffre daffaire au 16 du mois, ben pour chaque magasin je dois faire la somme de tous ses ca entre le 1er et le 16 de l'annee, pareil pour lannée davant, et pareil pour lannée encore davant |
|
|
|
00
|
|
|
#17 |
|
Membre chevronné
![]() Analyste - Programmeur Inscription : mai 2006 Messages : 712 ![]() |
Tu as essayé de mettre "Limit 0,30" à la fin de ta requette et de l'incrementer au fur et à mesure ou 100 parce que si tu fais un select de plus de 1000 result je comprend que tu mettes 40sec à afficher les résultats mais la solution la plus performante serait de stocker les calculs qui ne changent pas dans une table.
|
|
|
00
|
|
|
#18 | |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
Citation:
c'est à dire ? concretement ça donnerait quoi ? paske dans ce cas la faudrait que jexecute la requete plusieurs fois ? certs a chaque fois elle serait plus rapide mais bon ... |
|
|
|
00
|
|
|
#19 |
|
Membre chevronné
![]() Analyste - Programmeur Inscription : mai 2006 Messages : 712 ![]() |
Aprés reflecxion je pense que ca ne changerait pas grand chose, la table de 400 000 entrées restera longue à scanner.
|
|
|
00
|
|
|
#20 | |
|
Invité régulier
![]() Étudiant Inscription : juin 2005 Messages : 19 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com