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

Requêtes PostgreSQL Discussion :

Temps de traitement de plus en plus long


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut Temps de traitement de plus en plus long
    Bonjour,


    j'aimerais avoir une piste pour améliorer le temps de traitement sur un infocentre.En effet, au début, j'avais un temps de traitement de 30mn ce qui était raisonnable. Maintenant ce temps de traitement est passé à deux heures.
    Base Postgresql version 7.4.13
    (Impossible de mettre à jour )
    Pour information
    La mise à jour consiste à la récupération de fichier plat.
    (Cela fonctionne par lot de deux)
    1) création d'une table temporaire
    2) récupération des données dans un premier fichier pour mise à jour de la table temporaire
    3) récupération des données du second fichier comparaison avec ce qui se trouve dans la table temporaire et mise à jour de la base si et seulement si on trouve bien une correspondance
    J'espère avoir été suffisamment clair.
    D'avance merci pour votre aide

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    Si la base continue d'augmenter, pas nécessairement étonnant que les temps de traitement augmentent au fur et à mesure.
    Avec le peu d'informations dont on dispose, c'est difficile de pouvoir vous aider plus que ça...
    Une première piste : les tables sont-elles correctement indexées ? Voici le lien vers un tutoriel pour vous aider : http://sqlpro.developpez.com/cours/quoi-indexer/

    ced

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    Bonjour,

    Merci ced pour ta réponse. Mais, je connaissais déjà ce lien. Et je n'ai pas trouvé de piste d'amélioration.
    Petit complément d'explication
    L'infocentre permet d'afficher le bon fonctionnement des sauvegardes.
    Pour cela
    On a donc une table serveurs qui liste l'ensemble des serveurs sauvegardés
    une table "strategies" qui liste l'ensemble des stratégies sauvegardes en lien avec la table "serveurs" et une table "sauvegardes" qui liste l'ensemble des sauvegardes en lien avec la table "strategies".
    Lors de la mise à jour, si un serveur n'existe pas, il est créé, si une stratégie n'existe pas elle est créée,tout cela pour pouvoir insérer la nouvelle sauvegarde.
    Donc à chaque insertion, il y a d'abord une vérification pour savoir si existant.
    Est-ce que cela est plus claire?

  4. #4
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 684
    Points : 7 891
    Points
    7 891
    Par défaut
    Bonsoir,

    Tu passes par des tables temporaires pour mettre à jour des données si elles existent? Donc à priori je suppose qu'il y a pas mal de requêtes UPDATE et DELETE (voire DROP avec les tables temporaires)?

    As-tu regardé si ton serveur fait des vacuum tout seul? Si ce n'est pas le cas il faut peut-être envisager d'en faire (et faire un vacuum full de temps en temps): ça peut augmenter nettement les performances.

  5. #5
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    Bonjour kain_tn

    Merci pour ton aide. Je confirme qu'il y a beaucoup d'insert, update et de delete et qu'il y a régulièrement des vacuum pendant le traitement et à la fin du traitement. Mais on travaille avec une seule table temporaire qui est créée au début du traitement et supprimée à la fin.

  6. #6
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bah sur de l'opti de process :
    - identifier ce qui est "lent", ca n'est pas forcément 1 requête mais la répétition de certaine.
    - identifer les parties itératives => peut-on les changer pour faire de l'ensembliste (vous traitez des fichiers palt donc..?)

  7. #7
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    @Punkoff oui, effectivement, la mise à jour se fait à partir de fichier plat

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bein, prend ton process et trouve combien de temps chaque étape (lecture sequentiel, insert, update, ....) prend sur tes 2h.

    Une fois que tu saura ca tu pourras commencer à présenter correctement ton problème.

  9. #9
    Membre habitué
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2004
    Messages : 319
    Points : 144
    Points
    144
    Par défaut
    Bonjour,

    C'est bon, j'ai trouvé en rajoutant 5 index mon temps de traitement est passé de 2h à 35mn
    Voici en résumé ma démarche.
    1) recherche de l'ensemble des requêtes utilisées pendant le traitement batch.
    Dont énormément de SELECT. Contrôle pour chaque requête si elle utilisait bien un index. Si,non création et nouveau test, pour vérifier la pertinence de celui-ci.
    2)le traitement batch se faisant en deux temps.
    - Création d'une table temporaire (création d'un index pour accélérer le traitement de la deuxième partie)
    - relance de l'ensemble (très concluant)
    Conclusion
    Ced : tu avais raison, c'était bien un problème d'index. La commande "explain analyze" m'a bien aidé car je voyais tout de suite si il l'utilisait ou non

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

Discussions similaires

  1. Temps de traitement d'une requete tres long
    Par maskk dans le forum VBA Access
    Réponses: 5
    Dernier message: 21/01/2013, 09h37
  2. Windows Azure : plus simple, plus flexible, plus ouvert
    Par Gordon Fowler dans le forum Microsoft Azure
    Réponses: 2
    Dernier message: 08/06/2012, 22h44
  3. Temps d'insert de plus en plus long
    Par Dramps dans le forum SQL
    Réponses: 2
    Dernier message: 01/09/2010, 11h53
  4. Temps de Traitement trop long
    Par RGShoop dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/06/2007, 16h41
  5. [VBA-E] Temps de traitement long
    Par argoet dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 24/05/2006, 10h58

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