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 :

PG8.1 probleme de configuration (surement)


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut PG8.1 probleme de configuration (surement)
    Bonjour,

    Mon problème c'est que j'ai une table, 550000 données la même requete, les même index.
    Sous mysql j'ai un résultats dans la minute, sous pg au bout d'une heure la requète n'a toujours pas finie.

    Voilà la table :
    CREATE TABLE stats_appels4
    (
    id int4 NOT NULL,
    cat int4 NOT NULL DEFAULT 0,
    appelant varchar(20) NOT NULL DEFAULT ''::character varying,
    date timestamp NOT NULL,
    CONSTRAINT prim_stats_appel4_id PRIMARY KEY (id),
    )

    Qui contient 550 000 enregistrements.

    Sur mysql 5.0 je crée la meme table avec comme index :
    (cat,appelant,date)

    Je fais la requete :
    SELECT date_format(a.date ,'%Y-%m'),COUNT(DISTINCT(a.appelant))
    FROM stats_appels AS a
    WHERE a.cat = 30
    AND 0 = ( SELECT COUNT(b.id)
    FROM stats_appels AS b
    WHERE b.cat = 30 AND MONTH( b.date ) < MONTH( a.date )
    AND a.appelant = b.appelant )
    AND YEAR( a.date ) = 2006 GROUP BY MONTH( a.date );

    Qui a pour sémentique : Je veux le nombre de nouveaux appelant par mois.

    J'ai ma réponse dans la minute.

    Maintenant j'ai la même table, les même données
    et l'index :
    CREATE INDEX ind_sta4_cat_app ON stats_appels4 (cat,appelant,date);

    Je fais la requète :
    SELECT EXTRACT(MONTH FROM a.date)::integer, COUNT(DISTINCT(a.appelant))::integer
    FROM public.stats_appels4 AS a
    WHERE (b.cat::integer = 30)
    AND 0= (SELECT COUNT(b.id)::integer
    FROM stats_appels4 AS b
    WHERE (a.cat::integer = 30)
    AND EXTRACT(MONTH FROM b.date)::integer < EXTRACT(MONTH FROM a.date)::integer
    AND b.appelant = a.appelant )
    AND EXTRACT(YEAR FROM a.date )::integer = 2006
    GROUP BY EXTRACT(MONTH FROM a.date )::integer;

    Il me semble que c'est la même que pour mysql.

    Le problème c'est que sur postgresql sur la meme machine au bout d'une heure je n'ai toujours pas les résultats.
    Je ne comprends pas d'où ca peut venir. J'ai fais 50 analyze, vacuum analyze et toujours pareil

    Le problème n'est pas la structure de la table, ni la requète(ce ne sont que des tests), le problème est que je n'arrive pas a obtenir de résultats sur postgresql.
    J'ai du foirer un truc dans la configuration mais je vois pas quoi

    Ps: je suis sous debian sid et postgresql 8.1

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    les deux requêtes ne sont pas équivalentes, dans la requête Postgres tu as interverti deux alias dans les lignes 'WHERE a.cat = 30' et 'WHERE b.cat = 30', ce qui n'est pas du tout la même chose, ça doit sans doute donner un produit cartésien quelque part...

    D'autre part, il n'est pas nécessaire d'utiliser tous ces CAST.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Effectivement, je viens de fracasser la tete du dev.

    Désolé pour le dérangement et le temps perdu

Discussions similaires

  1. Probleme de configuration (surement)
    Par lui88 dans le forum Visual C++
    Réponses: 1
    Dernier message: 14/04/2009, 15h30
  2. [Sécurité] [php.ini][exim]problème de configuration
    Par david_0131b4 dans le forum Langage
    Réponses: 1
    Dernier message: 17/11/2005, 12h34
  3. [Tomcat]Probleme de configuration Tomcat
    Par tatann dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 18/09/2005, 20h30
  4. Problème de configuration ?
    Par Aramiss dans le forum Hibernate
    Réponses: 3
    Dernier message: 28/05/2004, 16h57
  5. [JBOSS]Probleme de configuration
    Par cameleon2002 dans le forum JBuilder
    Réponses: 5
    Dernier message: 11/09/2003, 15h09

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