Re: Slow query through ODBC

From: "Magnus Hagander" <mha(at)sollentuna(dot)net>
To: "Arnaud Lesauvage" <thewild(at)freesurf(dot)fr>
Cc: <pgsql-odbc(at)postgresql(dot)org>, "Dave Page" <dpage(at)vale-housing(dot)co(dot)uk>, "Ludek Finstrle" <luf(at)pzkagis(dot)cz>
Subject: Re: Slow query through ODBC
Date: 2006-02-10 11:10:50
Message-ID: 6BCB9D8A16AC4241919521715F4D8BCE6C7FDA@algol.sollentuna.se
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

> Magnus Hagander a écrit :
> > Since it works with different speeds in different clients, it
> > *probably* isn't on the server side. I'm far from sure on
> that though,
> > there may be other paramters that are implicitly changed
> when ODBC is used.
>
> Yes, that was my first impression also. But the fact that the
> server waits for an ACK from the client before it goes on
> sending packet is quite strange, isn't it ?

Yes. Most definitly.

> > It's interesting to note that your problem is with a single
> large field.
> > If you query for approximatly the same amount of data *but
> in several
> > small fields*, do you get the same behaviour? Or does it
> happen only
> > with large fields?
>
> I have splitted the data into 4 fields.
> The largest field was ~23.000 characters long, so I made 4
> fields containing. The first one contains the first 6000, the
> second one from 6001 to 12000, etc...
> The query took about half the time to run !

Interesting. Did it make any difference to the timings in psql and/or pgadmin?

> > We enable TCP_NODELAY on both server and client, when
> available. And
> > it is available - I've double-checked and that code is
> indeed compiled
> > into both libpq and the server on 8.1 at least.
>
> I run 8.1.2, so I assume that it is enabled on my workstation
> and on the server.

Yup.

> > But I don't see how this can make a difference between pgadmin and
> > odbc and psql, since they all use the same code!
>
> Yes, I really don't understand either !
> But even though all use libpq.dll, they might not handle the
> data the same way. Mayboe ODBC needs to check for data type,
> field length, etc... and the other frontends do not need this
> kind of information ?

Hm. That's an interesting observation. When you do a query with ODBC, does it do any "extra queries" automatically on the system tables? Enable statement logging on the server and see if something weird shows up.

//Magnus

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Tim Clarke 2006-02-10 11:12:26 Re: LATIN1/9 conversion....
Previous Message Ludek Finstrle 2006-02-10 10:58:18 Re: LATIN1/9 conversion....