[algo] Optimisation code
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Salut à tous,
Je fais appel aux grand pros d'algo!
Je travaille sur un script ASP qui attaque une base MS-SQL, et vu l'importance du nombre d'enregistrements, ce script met plus d'une heure à s'exécuter.
Etant donné que je l'ai développé seul, je n'ai pas l'esprit critique que des personnes extérieures au projet (vous ;-) )peuvent avoir. Alors si vous avez 2-3 conseils pour accélérer mon traitement, faites en part!
Merci d'avance.
Bon courage!
Je fais appel aux grand pros d'algo!
Je travaille sur un script ASP qui attaque une base MS-SQL, et vu l'importance du nombre d'enregistrements, ce script met plus d'une heure à s'exécuter.
Etant donné que je l'ai développé seul, je n'ai pas l'esprit critique que des personnes extérieures au projet (vous ;-) )peuvent avoir. Alors si vous avez 2-3 conseils pour accélérer mon traitement, faites en part!
Merci d'avance.
' On selectionne tous les numéros de fiche_produit, et pour chaque on recense dans chaque
' localisation combien de produits de ce type il existe.
query = "SELECT no_fiche_produit FROM fiche_produit"
RSfp.Open query, connexion, 3, 3
query = "SELECT no_localisation FROM localisation"
RSloc.Open query, connexion, 3, 3
nb = 0
while not RSfp.eof
while not RSloc.eof
query = "SELECT no_produit FROM produit WHERE no_localisation=" & RSloc("no_localisation") & " AND no_fiche_produit=" & RSfp("no_fiche_produit")
RSnb.Open query, connexion, 3, 3
cpt = RSnb.RecordCount
if cpt <> 0 Then
query = "INSERT INTO tdbord_historique (date_entree, quantite, no_fiche_produit, no_localisation) VALUES ('" & jour & "', " & cpt & ", " & RSfp("no_fiche_produit") & ", " & RSloc("no_localisation") & ")"
connexion.execute query
nb = nb+1
end if
RSnb.Close
RSloc.MoveNext
if nb mod 100 = 0 Then
Response.write(nb & " : " & query & "<BR/>")
Response.Flush()
end if
wend
RSloc.MoveFirst
RSfp.MoveNext
wend
RSfp.Close
Set RSfp = Nothing
RSloc.Close
Set RSloc = Nothing
Set RSnb = Nothing
Bon courage!
Fat_cartman, Ass-Kicked by ASP
A voir également:
- [algo] Optimisation code
- Optimisation pc - Accueil - Utilitaires
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
4 réponses
salut
essais de trier tes données avant de les exploiter.
comme ça tu vas diminuer la complexité de ton algo et donc tu gagnera du temps.
essais de trier tes données avant de les exploiter.
comme ça tu vas diminuer la complexité de ton algo et donc tu gagnera du temps.
Je ne vois pas de tri possible, je dois recenser le nombre de produits par localisation.
As tu un tri en tete à me proposer??
As tu un tri en tete à me proposer??
Fat_cartman, Ass-Kicked by ASP
j'aime pas trop lire du code vb (ou ressemblant), mais apparemment, tu veux le nombre de produits par localisation :
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
select l.no_localisation, count(p.no_produit) from localisation l, produit p where p.no_localisation = l.no_localisation group by l.no_localisation order by l.no_localisation ASC;
tafiscobar "lou waye def bopame"
la nullite n'existe pas, l'ignorance oui, ah je suppose!!!
Puis sinon si le nombre d enregistrements est vraiment important il devient util de faire un index....ca optimise les accés à mort ;-)
Merci aux participants, le plus proche est tafiscobar (respect), j'ai trouvé la solution en parrallele qui est :
Requete tres bonne puisqu'elle ne me sort pas tous les no_fiche_produit dans les no_localisation dont le COUNT est égal à 0!
Donc seulement 4459 enregistrements à la place de.... 56000 au début....
Bonne journée à tous!
SELECT localisation.no_localisation, produit.no_fiche_produit, COUNT(no_fiche_produit) FROM localisation, produit WHERE produit.no_localisation = localisation.no_localisation GROUP BY produit.no_fiche_produit, localisation.no_localisation ORDER BY localisation.no_localisation, produit.no_fiche_produit ASC
Requete tres bonne puisqu'elle ne me sort pas tous les no_fiche_produit dans les no_localisation dont le COUNT est égal à 0!
Donc seulement 4459 enregistrements à la place de.... 56000 au début....
Bonne journée à tous!
Fat_cartman, Ass-Kicked by ASP