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 :

Optimisation requete


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut Optimisation requete
    Bonjour,

    je suis entrain de travailler sur une optimisation de ma base en postgres.

    dans cette base je dispose d'une table de 55 champs et qui fait actuellement plus de 2 000 000 d'enregistrement.

    le moindre select prendre aujourd'hui une infinité.

    j'ai crée un index sur les champs que j'utilise pour mes requetes,

    avez vous d'autre conseil pour optimizer le traitement

    Merci

    Mic

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2002
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 131
    Par défaut
    C'est trop vague

    Peux-tu donner plus de renseignements sur ta table et ses (types de) données, les requêtes que tu effectues dessus, les index que tu as créés...

    Dans l'absolu, la seule chose que je peux te conseiller, c'est de vérifier les plans de tes requêtes avec la syntaxe EXPLAIN (http://www.postgresql.org/docs/8.0/i...l-explain.html).

    Tu peux aussi jeter un oeil dans les techdocs : http://techdocs.postgresql.org/#techguides

  3. #3
    Membre éclairé
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    les champs dans ma table sont des int car il s'agit des identifiants d'autre tables

    concernant les index je les ai créer ainsi :

    create index vueidannonceur on idannonceur(id_annonceur);

    concernant les requetes, il s'agit de select distinc ou des calculs via la fonction sum


    je vais jeter un coup d'oeil sur le explain

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    fait aussi un vacuum analyse de ta base.
    - eviter les requetes imbriquées au maximum car ca fait ramer à fond.
    - autant faire deux requetes simple qu'une requete imbriquées si possible.
    - eviter les requetes "like ' toto' " si possible

  5. #5
    Membre éclairé
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    'lut,

    je realise juste un delect distinct sur un champs, c du numéric sur lequel j'y ai mi un index. j'ai ma requete en 3 minutes sur une table de plus de 2 millions d'enregistrements.

    on peut faire mieux ou pas ?

  6. #6
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Par défaut
    Bonjour,
    Un select distinct est quand même sévère pour ce volume de données. Tu aurais tout à gagner à faire un simple select éventuellement avec une clause where sur un deuxième champ si c'est possible. Dans ce cas il faut bien entendu redéfinir correctement les index.
    D'autre part il faut faire la commande ANALYZE après avoir positionné le ou les index.
    Si les données changent peu souvent tu pourrais également essayer la commande CLUSTER qui réorganise une table en fonction d'un index. Attention toutefois à cette commande qui verrouille complètement la table pendant l'opération, vu la volumétrie.

  7. #7
    Membre éclairé
    Homme Profil pro
    Coordinateur développement web
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Coordinateur développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    ok, je viens de modifier ma requete, d'un distinct je suis passe par un group by & order by, resultat je passe de 20s à 3s

    merci les gars

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

Discussions similaires

  1. optimisation requetes avec base de données
    Par flogreg dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 05/07/2005, 14h54
  2. optimisation requetes (besoin de votre avis)
    Par seb92 dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/12/2004, 11h27
  3. [PL/SQL] Optimisation requete SQL
    Par CDRIK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/10/2004, 09h52
  4. [SYBASE] optimisation requete UPDATE
    Par metheorn dans le forum Sybase
    Réponses: 8
    Dernier message: 24/05/2004, 17h01
  5. Optimisation requetes SQL
    Par joel90 dans le forum Administration
    Réponses: 18
    Dernier message: 15/05/2004, 21h45

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