From: | Eric HAGENBACH <eric(dot)hagenbach(at)vif(dot)tm(dot)fr> |
---|---|
To: | |
Cc: | Forum Postgres France <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: Temps de réponse |
Date: | 2004-07-28 10:37:31 |
Message-ID: | 410781EB.9060700@vif.tm.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Eric HAGENBACH a écrit :
> Eric HAGENBACH a écrit :
>
>> Bonjour,
>>
>> J'ai une base Postgres 7.4.3 installée sur une serveur linux
>> J'y accède via un poste client sous windows XP en utilisant le driver
>> ODBC pour Postgres (PostgreSQL30)
>>
>> Nous voulons utilisons des outils du marché comme Transformer de
>> Cognos et Analyses Services de Microsoft pour interroger cette base
>> et constuire des cubes multi-dimensionnelles. C'est ce que nous
>> faisons à l'heure actuelle sur une base Oracle.
>>
>> Les tests effectués avec ces outils donnent des résultats deçevant en
>> terme de temps de réponse (exemple: 40 min pour créer un cube sous
>> Cognos avec seulement 4000 ligne de factures, par compaison le même
>> genre de cube sur une base de 70 000 lignes prend 20 min).
>>
>> J'ai effectué des tests sous winsql (outils de requêtage sous
>> windows) et une requête avec 4 jointures externes prend 18 min.
>> La même requête faite directement sur le serveur linux (sous psql)
>> prend 6 min 40 s.
>>
> Mea culpa, j'avais laissé les fichiers log (psqodbc_XXXX.log et
> mylog_XXXX.log) et ça ralentissait énormément la requête:
> la requête dure 6 min 50 s sous windows et le cube sous Cognos prend 9
> min. C'est encore assez long !
>
>> Le même genre de requête sur une base Oracle plus importante donne un
>> résultat immédiat.
>>
>> Y-a-t'il un paramétrage particulier à mettre en place pour optimiser
>> par exemple les jointures externes.
>>
> PAr contre j'ai une requête construite par l'outil Analyses Manager de
> Microsoft qui fait la jointure entre 7 dimensions soit 7 tables (en
> fait une des tables est déjà une vue avec une jointure externe) et la
> requête lancé hier à 16h15 n'a toujours pas donnée de résultat (sur
> une base qui ne compte que quelques milliers d'enregistrements) !!!
> La même requête sans la jointure externe retourne le résutat en 9 s !!
En approfondissant les recherches, il s'avère que le véritable problème
dans la vue n'est pas la jointure externe elle-même mais la condition
mise en place dans le where (il s'agit de la condition qui porte
uniquement sur la table principale):
Cette condition est du type:
Where (T1.C1 = 'XX' and T1.C2 = '99' and T1.C3 = 'ZZZ' and (T1.C4 IN
('AA','BB'))
Si je mets uniquement: where (T1.C1 = 'XX') la résultat de la vue
s'affiche en moins de 50 s
Si je mets where (T1.C1 = 'XX' and T1.C2 = '99'), le résultat n'est
toujours pas affiché au bout de 5 min.
Les 2 champs mentionnés font partis des index ??
Est-ce que ce genre de problème vous est connu ??
Je ne retrouve pas ce problème de condition quand je fais des accès
directs à la table (quand elle n'est pas dans la vue).
Est-ce que la requête finale (du genre celle en bas du mail) ne
serait-elle pas trop compliquée pour Postgres (ou simplement mal faite
pour Postgres) ?
>> Merci
>>
>> Eric Hagenbach
>> eric(dot)hagenbach(at)vif(dot)tm(dot)fr
>> ------------------------
>> Exemple de requete:
>> select T1."x1" as c1,
>> T1."x2" as c2,
>> T2."xxx" as c130,
>> T3."mt1" as c133,
>> T4."d1" as c140,
>> T5."d12" as c141
>> from (((("d"."table1" T1 left outer join "d"."table2" T2
>> on ((((T1."c1" = T2."c1") and (T1."c2" = T2."c2")) and
>> (T1."c3" = T2."c3")) and (T1."c4" = T2."c4")) and
>> (T1."c5" = T2."5")) left outer join "d"."table3" T3 on T1."id" = T3."id")
>> left outer join "d"."table4" T4 on T1."id" = T4."id")
>> left outer join "d"."table5" T5 on T1."id" = T5."id")
>> where ((((((T1."c1" = 'XX') and (T1."c2" = ' ')) and
>> (T1."C3" = 'XX')) and (T1."C4" = '99')) and
>> (T1."C7" = 'ZZZ')) and (T1."C8" IN ('AA','BB')))
>>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Sébastien Lardière | 2004-07-28 10:53:28 | Re: Temps de réponse |
Previous Message | Eric HAGENBACH | 2004-07-28 09:31:52 | Re: Temps de réponse |