Re: [GENERAL] Libpq Asynchronous Command Processing

2010-05-31 Thread Alonso García , Bruno Elier
>So PQexec works fine for you on both 7.4 and 8.3, producing a quick 
>result no matter which server you run it against?

Yes. If I use PQexec, both 7.4 and 8.3 produce a quick result but I if I use 
asynchronous command processing 8.3 produce a slow result whereas 7.4 works 
fine.

>Consider using wireshark to examine the network traffic, and see if 
>there's much activity during your long and slow PQconsumeInput / 
>PQisBusy loop. The throughput analysis tool is handy for this.
I will be back with the results.
Bruno,

--
Craig Ringer

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


Re: [GENERAL] Libpq Asynchronous Command Processing

2010-05-31 Thread Alonso García , Bruno Elier
>> With that analysis, I'd be betting against it being a client problem.
>> (If you wanted, you might confirm that by pointing an old client at
>> the new server.)
>>
>> I'd look into how the data was loaded into the new server and how
>> the database is configured: number of buffers, indexes, and whether
>> analyze has been run or not.
>>
>> It would be strange indeed (possible, but very strange) to find
>> such a slowdown between 7.x and 8.x when the team is preparing
>> to push 9.0 out the door.  Surely it would have been known before;
>> therefore it's a practical certatinty that there is something
>> different about the configuration of your two servers.
>
>... or that the planner is making a bad choice when it made a good one 
>in 7.x . That's far from unheard of; the downside of a stats-based and 
>very complex planner is that sometimes it doesn't make the perfect 
>choice. Even with the same stats, etc, it's far from impossible that 7.x 
>might hit a good plan when 8.x doesn't.
>
>I mention this because the OP really needs to supply EXPLAIN ANALYZE 
>results for the query run via psql (not their custom code) on both their 
>7.x and 8.x servers.

If I perform the query using pgadmin I get the same result in both versions 7.4 
and version 8.3. 
In fact I have written two test applications that perform the same query, one 
using the synchronous command processing (PQexec) an one using the asynchronous 
Command Processing (PQsendQuery / PQconsumeInput / PQisBusy / PQgetResult) and 
the results are:
-> synchronous command processing takes less than two seconds to retrieve the 
result.
-> asynchronous command processing takes more than 120 seconds to retrieve the 
result.
Both applications are connecting to the same DB so I don't know why I am 
getting different results. Well I know that PQIsBusy is returning true so I am 
not executing PQgetResult.
Bruno,

-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general


[GENERAL] Libpq Asynchronous Command Processing

2010-05-31 Thread Alonso García , Bruno Elier
Hello,
I am migrating a client/server application from Debian Sarge to Debian 5.0 and 
I am finding problems with the client application. The facts are the following:
->The client application is an interface to a Postgresql DB so it uses libpq.
->The client application compiles properly in both Debian Sarge and Debian 5.0.
->The client application employs Libpq asynchronous command processing.
->The pseudo.code for the queries is the following:
PQconnectdb
PQsendQuery
PQflush
loop{
PQconsumeInput
PQisBusy
if not busy PQgetResult and leave
}
->The new DB server is postgresql 8.3.
->The old DB server is postgresql 7.4
->I am using the same SQL script to create the DB.
And the problems I am finding are the following:
->Queries from the client to the new DB server take a lot of time. 
->Queries from the client to the old DB server are fast.
->The same query takes 150 secs in one case an 1 sec in the other case.

¿Any ideas regarding the origin of this strange behaviour?¿Could it be the 
configuration of the new DB?
Thanks in advance.


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general