IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP Discussion :

Optimisation d'une requete assez lourde(car appelée N fois)


Sujet :

ASP

  1. #1
    Membre actif Avatar de ahage4x4
    Inscrit en
    Janvier 2005
    Messages
    318
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 318
    Points : 238
    Points
    238
    Par défaut Optimisation d'une requete assez lourde(car appelée N fois)
    Bonjour a tous,
    Je suis face a un probleme d'optimisation de requete SQL.
    Je voudrais afficher des statistiques de mon site a partir d'un bd access.En bref afficher le nombre d'enregistrement crées dans chaque moi sur une période T.

    ex: Mars2006-->52 , Fevrier2006-->26, juqu'a a arriver a l'enregistrement le plus ancien qui delimitera ma période ........ mai2004--->78

    Voila ma requete sql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL = "SELECT COUNT(IDFile) FROM " & table & " WHERE MONTH(uploaddate)/YEAR(uploaddate)=" & DateToCompare
    Elle sera appelée N fois, cad de la plus ancienne date d'enreg. a la date d'aujourdh'ui (NOW) , il y a 35 mois donc execution.
    Ces statistiques aparaitront a chaque page de mon site donc lourdeur enorme!!
    C'est peut etre bete de ma part car je peux parcourir la table une seule fois et indexer le nombre d'enregistrement correspondant a chaque mois dans un tableau.
    Vous allez me dire de faire ca, pas de probleme je le ferais mais j'ai envie d'ecouter les avis des experts sur ma question.

    Que ca soit ma méthode fausse (N requetes) ou la methode de tableau(1 requete), Est ce faisable d'executer la (ou les) requetes une fois l'application démarre (on_start) puis mettre le resultat dans un tableau utilisable dans une variable d'application?
    Ca vaut vraiment le coup? Les variables d'application est ce vraiment stable?

    Merci pour votre temps.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    Et pourquoi pas en une seule requete avec des agregats (sur mois et année)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT count(IDFile)as nb , Month(uploaddate),Year(uploaddate)
    FROM maTable
    GROUP BY Month(uploaddate),Year(uploaddate)
    ORDER BY Year(uploaddate),Month(uploaddate)

  3. #3
    Membre actif Avatar de ahage4x4
    Inscrit en
    Janvier 2005
    Messages
    318
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 318
    Points : 238
    Points
    238
    Par défaut
    Citation Envoyé par amar00
    Et pourquoi pas en une seule requete avec des agregats (sur mois et année)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT count(IDFile)as nb , Month(uploaddate),Year(uploaddate)
    FROM maTable
    GROUP BY Month(uploaddate),Year(uploaddate)
    ORDER BY Year(uploaddate),Month(uploaddate)
    Merci amar, bonne idée. Pourrais tu me repondre a la 2eme partie de question. Cad, l'histoire d'executer cette requete dans le global.asa et utiliser le resultat dans un tableau. Est ce que tu as déja essayé? Des idées?

    Merci !

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 166
    Points : 189
    Points
    189
    Par défaut
    D'après ce que j'en sais une variable d'application à une durée de vie qui commence au démarrage du serveur (application on start) et qui prend fin à l'arrêt du serveur web.
    Peu d'intérêt donc d'éxécuter la requête en question sur un démarrage d'application.
    Par contre il est possible d'alimenter les variables d'application à chaque insertion en base (mais un peu lourd non?).
    Tu as raison de ne pas vouloir éxcuter un nombre de requetes dynamique, mais avec la requete que je t'ai proposée ce pb est résolu. Une telle requete ne posera pas de problèmes de performance alors autant l'executer sur chaque page ou tu en as besoin.

  5. #5
    Membre actif Avatar de ahage4x4
    Inscrit en
    Janvier 2005
    Messages
    318
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 318
    Points : 238
    Points
    238
    Par défaut
    Citation Envoyé par amar00
    Tu as raison de ne pas vouloir éxcuter un nombre de requetes dynamique, mais avec la requete que je t'ai proposée ce pb est résolu. Une telle requete ne posera pas de problèmes de performance alors autant l'executer sur chaque page ou tu en as besoin.
    Amar Merci,
    Pourrais tu m'expliquer pourquoi ta requete est plus "legere"?Et comment l'utiliser? Car il me semble que je n'ai pas tout compris la.

    Merci Amar!

  6. #6
    Membre actif Avatar de ahage4x4
    Inscrit en
    Janvier 2005
    Messages
    318
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 318
    Points : 238
    Points
    238
    Par défaut
    Amar OK j'ai bien compris,
    Merci bcp tu m'as appris quelquechose de tres interessant. C'est rapide et tres bien organisé!!

    A bientot !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation d'une requete "TOP 5"
    Par gregb34 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/05/2006, 17h17
  2. Optimisation d'une requete récurrente
    Par winzou dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/01/2006, 22h07
  3. Optimisation d'une requete specifique
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 9
    Dernier message: 16/12/2005, 14h14
  4. optimisation d'une requete de recherche
    Par moog dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 06/04/2005, 16h58
  5. pb avec une requete assez dure
    Par critok dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/04/2005, 11h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo