Skip site navigation (1) Skip section navigation (2)

Re: Temps de réponse

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 (view raw or flat)
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')))
>>
>

In response to

Responses

pgsql-fr-generale by date

Next:From: Sébastien LardièreDate: 2004-07-28 10:53:28
Subject: Re: Temps de réponse
Previous:From: Eric HAGENBACHDate: 2004-07-28 09:31:52
Subject: Re: Temps de réponse

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group