Thread: libpq vs ODBC

libpq vs ODBC

From
Divakar Singh
Date:
Is there any performance penalty when I use ODBC library vs using libpq?
 
Best Regards,
Divakar


Re: libpq vs ODBC

From
Alex Goncharov
Date:
,--- You/Divakar (Wed, 8 Dec 2010 20:31:30 -0800 (PST)) ----*
| Is there any performance penalty when I use ODBC library vs using libpq?

In general, yes.

In degenerate cases when most of the work happens in the server, no.

You need to measure in the contents of your specific application.

-- Alex -- alex-goncharov@comcast.net --

Re: libpq vs ODBC

From
Divakar Singh
Date:
So it means there will be visible impact if the nature of DB interaction is DB insert/select. We do that mostly in my app.
Performance difference would be negligible if the query is server intensive where execution time is far more than time taken by e.g. communication interface or transaction handling.
Am I right?
 
Best Regards,
Divakar



From: Alex Goncharov <alex-goncharov@comcast.net>
To: Divakar Singh <dpsmails@yahoo.com>
Cc: pgsql-performance@postgresql.org
Sent: Thu, December 9, 2010 10:31:17 AM
Subject: Re: [PERFORM] libpq vs ODBC

,--- You/Divakar (Wed, 8 Dec 2010 20:31:30 -0800 (PST)) ----*
| Is there any performance penalty when I use ODBC library vs using libpq?

In general, yes.

In degenerate cases when most of the work happens in the server, no.

You need to measure in the contents of your specific application.

-- Alex -- alex-goncharov@comcast.net --

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

Re: libpq vs ODBC

From
Alex Goncharov
Date:
,--- You/Divakar (Wed, 8 Dec 2010 21:17:22 -0800 (PST)) ----*
| So it means there will be visible impact if the nature of DB interaction is DB
| insert/select. We do that mostly in my app.

You can't say a "visible impact" unless you can measure it in your
specific application.

Let's say ODBC takes 10 times of .001 sec for libpq.  Is this a
"visible impact"?

| Performance difference would be negligible if the query is server intensive
| where execution time is far more than time taken by e.g. communication interface
| or transaction handling.
| Am I right?

You've got to measure -- there are too many variables to give you the
answer you are trying to get.

To a different question, "Would I use ODBC to work with PostgreSQL if
I had the option of using libpq?", I'd certainly answer, "No".

You'd need to have the option of using libpq, though.  ODBC takes care
of a lot of difficult details for you, and libpq's higher performance
may turn out to be a loss for you, in your specific situation.

-- Alex -- alex-goncharov@comcast.net --


Re: libpq vs ODBC

From
Divakar Singh
Date:
hmm
If I understand it correctly you argument is valid from performance point of view.
But in practical scenarios, it would make more sense to do ODBC if the difference is only 5% or so, because it opens up so many choices of databases for me.
Do we have some published data in this area.

 
Best Regards,
Divakar



From: Alex Goncharov <alex-goncharov@comcast.net>
To: Divakar Singh <dpsmails@yahoo.com>
Cc: alex-goncharov@comcast.net; pgsql-performance@postgresql.org
Sent: Thu, December 9, 2010 11:21:26 AM
Subject: Re: [PERFORM] libpq vs ODBC

,--- You/Divakar (Wed, 8 Dec 2010 21:17:22 -0800 (PST)) ----*
| So it means there will be visible impact if the nature of DB interaction is DB
| insert/select. We do that mostly in my app.

You can't say a "visible impact" unless you can measure it in your
specific application.

Let's say ODBC takes 10 times of .001 sec for libpq.  Is this a
"visible impact"?

| Performance difference would be negligible if the query is server intensive
| where execution time is far more than time taken by e.g. communication interface
| or transaction handling.
| Am I right?

You've got to measure -- there are too many variables to give you the
answer you are trying to get.

To a different question, "Would I use ODBC to work with PostgreSQL if
I had the option of using libpq?", I'd certainly answer, "No".

You'd need to have the option of using libpq, though.  ODBC takes care
of a lot of difficult details for you, and libpq's higher performance
may turn out to be a loss for you, in your specific situation.

-- Alex -- alex-goncharov@comcast.net --


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

Re: libpq vs ODBC

From
Pavel Stehule
Date:
Hello

2010/12/9 Divakar Singh <dpsmails@yahoo.com>:
> hmm
> If I understand it correctly you argument is valid from performance point of
> view.
> But in practical scenarios, it would make more sense to do ODBC if the
> difference is only 5% or so, because it opens up so many choices of
> databases for me.
> Do we have some published data in this area.
>

It's depend on your environment - VB or VBA has not native drivers, so
you have to use a ODBC. The overhead from ODBC or ADO or ADO.NET for
almost task unsignificant. So people use it. The performance problems
can be detected in some special tasks - and then is necessary to use a
stored procedures.

Regards

Pavel Stehule

>
> Best Regards,
> Divakar
>
> ________________________________
> From: Alex Goncharov <alex-goncharov@comcast.net>
> To: Divakar Singh <dpsmails@yahoo.com>
> Cc: alex-goncharov@comcast.net; pgsql-performance@postgresql.org
> Sent: Thu, December 9, 2010 11:21:26 AM
> Subject: Re: [PERFORM] libpq vs ODBC
>
> ,--- You/Divakar (Wed, 8 Dec 2010 21:17:22 -0800 (PST)) ----*
> | So it means there will be visible impact if the nature of DB interaction
> is DB
> | insert/select. We do that mostly in my app.
>
> You can't say a "visible impact" unless you can measure it in your
> specific application.
>
> Let's say ODBC takes 10 times of .001 sec for libpq.  Is this a
> "visible impact"?
>
> | Performance difference would be negligible if the query is server
> intensive
> | where execution time is far more than time taken by e.g. communication
> interface
> | or transaction handling.
> | Am I right?
>
> You've got to measure -- there are too many variables to give you the
> answer you are trying to get.
>
> To a different question, "Would I use ODBC to work with PostgreSQL if
> I had the option of using libpq?", I'd certainly answer, "No".
>
> You'd need to have the option of using libpq, though.  ODBC takes care
> of a lot of difficult details for you, and libpq's higher performance
> may turn out to be a loss for you, in your specific situation.
>
> -- Alex -- alex-goncharov@comcast.net --
>
>
> --
> Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-performance
>
>

Re: libpq vs ODBC

From
"Pierre C"
Date:
On Thu, 09 Dec 2010 06:51:26 +0100, Alex Goncharov
<alex-goncharov@comcast.net> wrote:

> ,--- You/Divakar (Wed, 8 Dec 2010 21:17:22 -0800 (PST)) ----*
> | So it means there will be visible impact if the nature of DB
> interaction is DB
> | insert/select. We do that mostly in my app.
>
> You can't say a "visible impact" unless you can measure it in your
> specific application.
>
> Let's say ODBC takes 10 times of .001 sec for libpq.  Is this a
> "visible impact"?

Well you have to consider server and client resources separately. If you
waste a bit of CPU time on the client by using a suboptimal driver, that
may be a problem, or not. It you waste server resources, that is much more
likely to be a problem, because it is multiplied by the number of clients.
I don't know about the specifics of ODBC performance, but for instance
php's PDO driver's handling of prepared statements with postgres comes up
as an example of what not to do.