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

PostgreSQL Discussion :

Aide temps de réponse requete


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut Aide temps de réponse requete
    Bonjour;

    J'ai un gros problème avec une requête .

    Cette requête a des temps d'exécution tout fait acceptable de l'ordre 0,08 sec et tout d'un coup la même requête va s'emballer et prendre 4 voir 25 sec pour s'exécuter alors que le contenu de la table n'a pas changé.

    Merci pour vos pistes car je sèche...

    Bien à vous !

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Y a-t-il eu récemment un ajoût de volumétrie sur une des tables de la requêtes ?
    Les stats sont-elles à jour pour toutes les tables concernées par la requête ?
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    Il y avait 10 000 enregistrements dans cette table.. maintenant il y en a une centaine.

    J'ai fait un vacuum...

    C'est une table qui contient les membres en ligne, donc constamment mise à jour.

    la requête peut être très très rapide pendant 20 minutes et tout à coup avec le même nombre d'inscrits quasiment... mettre jusqu'à 30 secondes d'exécution alors que la table contient seulement 100 inscrits en ligne. Cela dure quelques minutes et ensuite tout redevient normal...

    J'ai retourné ma requête dans tous les sens je ne vois pas le problème sql, d'autant plus que les temps de réponse sont très bon la plupart du temps...

    je ne sais pas quoi faire...

    Merci

  4. #4
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    La commande 'vacuum' seule ne calcule pas les stats.
    Que donne la vue pg_stats filtrée sur ta table ?
    As-tu essayé 'vacuum full analyze ta_table' pour réellement recalculer les stats sur ta table depuis la diminution de volumétrie ?
    Peux-tu donner ta requête et le plan d'exécution de ta requête (explain select ...) ?
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    J'ai fait un vacuum full analyze sur ma table.

    ma page est composée de deux requêtes : la première calcul le nombre de inscrits en ligne dans la table et la seconde les affiche.

    J'ai mis dans ma page PHP pour chaque requete une indication du temps d'exécution de chaque requête.

    le problème se pose en premier avec la requête qui calcule le nombre d'inscrits en ligne. Tout d'un coup, on ne sait pas pourquoi, elle va mettre 5 secondes pour analyser une table qui fait 100 lignes.

    Ensuite ça s'enchaine avec la deuxième requête qui prend aussi du temps. Le tout s'accumule et le temps d'exécution devient énorme.

    J'ai fait un explain de ma requête mais cette explain a été fait alors que le temps de réponse est correct.

    C'est tellement aléatoire que j'arrive pas à obtenir l'explain quand il y a un pb.

    puis-je t'envoyer la requete qui calcule le nombre de membre en ligne en privé ?

  6. #6
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par viny Voir le message
    J'ai fait un explain de ma requête mais cette explain a été fait alors que le temps de réponse est correct.
    Ce n'est pas depuis que tu as fait vacuum full analyze que le plan d'exécution est correct ?
    Si tu ne recalcules pas les stats entre les fois où ça marche et les fois où ça plante, normalement le plan d'exécution ne devrait pas changer, donc si c'est plus long c'est peut-être que les ressources de la base et/ou du serveur sont sollicitées par d'autres sessions/programmes tournant en parallèle ?
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

Discussions similaires

  1. Requete avec WHERE et OR et temps de réponse déplorable
    Par olysmar2 dans le forum Développement
    Réponses: 5
    Dernier message: 17/06/2015, 21h43
  2. [WD16] Requete Interbase, Temps de réponse long.
    Par zozo66180 dans le forum WinDev
    Réponses: 13
    Dernier message: 13/09/2013, 16h17
  3. Temps de réponse d'une requete ACCESS
    Par sfeltan dans le forum C++Builder
    Réponses: 1
    Dernier message: 06/06/2007, 17h53
  4. Réponses: 3
    Dernier message: 06/02/2007, 15h19
  5. Temps de réponse entre deux sites
    Par coup dur dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 16/10/2003, 15h26

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