pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: jing han <jing_han_66@yahoo.com>
To: pgsql-interfaces@postgresql.org
Subject: about libpq-C FETCH performance issue
Date: Thu, 11 Nov 2004 09:00:50 -0800 (PST)
Message-ID: <20041111170050.75735.qmail@web53501.mail.yahoo.com> (raw)

Hello,

I'm working on a project where libpq-C is envolved. We
have several background processes keep querying
certain data from database to send out ip packets at
fast rate.

With libpq-C interface, I use 

res = PQexec(conn, "DECLARE myportal CURSOR FOR select
* from ourTables");

and then  res = PQexec(conn, "FETCH ALL in myportal");


to get the data. 

I found when our database has more and more data, res
= PQexec(conn, "FETCH ALL in myportal"); cost more and
more time, much more than 

res = PQexec(conn, "DECLARE myportal CURSOR FOR select
* from ourTables"); 

(note:ourTables can be several tables join together)

and make our sending packet rate extremely low. We get
into big problems here. 

Then I try FETCH 1 instead of FETCH ALL, no
improvement.

All the queries our background processes use was
optimized with EXPLAIN utility, these queries take
much shorter time in postgres console.

So I wonder what FETCH statement is doing: just fetch
query results from cursor or do the real query, get
the query result and give these results to us. Why it
is much slower than console sql command?

I wonder if there is other faster way ( I mean other
than FETCH ALL command) to get data from database with
libpq-C, or If you have a patch to make FETCH work
faster?

Hope to hear from you soon.


Best Regards
jing

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



Message-ID: <20041111170050.75735.qmail@web53501.mail.yahoo.com>
Permalink:  ../20041111170050.75735.qmail@web53501.mail.yahoo.com/
Also on:    postgresql.org/message-id/20041111170050.75735.qmail@web53501.mail.yahoo.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: jing_han_66@yahoo.com
  Subject: Re: about libpq-C FETCH performance issue
  In-Reply-To: <20041111170050.75735.qmail@web53501.mail.yahoo.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox