X-Original-To: pgsql-performance-postgresql.org@localhost.postgresql.org Received: from localhost (mx1.hub.org [200.46.208.251]) by postgresql.org (Postfix) with ESMTP id 39A0C9FA38E for ; Wed, 10 May 2006 17:53:58 -0300 (ADT) Received: from postgresql.org ([200.46.204.71]) by localhost (mx1.hub.org [200.46.208.251]) (amavisd-new, port 10024) with ESMTP id 24825-03 for ; Wed, 10 May 2006 17:53:49 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey- Received: from h57078.serverkompetenz.net (talk-net.net [81.169.128.8]) by postgresql.org (Postfix) with ESMTP id E66F99FA293 for ; Wed, 10 May 2006 17:53:48 -0300 (ADT) Received: from [192.168.115.250] (e178173057.adsl.alicedsl.de [85.178.173.57]) by h57078.serverkompetenz.net (Postfix) with ESMTP id 043B750C77D; Wed, 10 May 2006 22:52:06 +0200 (CEST) Message-ID: <446252E8.8000304@network-inventory.de> Date: Wed, 10 May 2006 22:54:00 +0200 From: Thomas Vatter User-Agent: Mozilla Thunderbird 1.0.5 (Windows/20050711) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Scott Marlowe CC: Tino Wildenhain , pgsql-performance@postgresql.org Subject: Re: in memory views References: <4461AFFF.7060200@network-inventory.de> <4461B3DE.6030700@wildenhain.de> <4461B899.4030502@network-inventory.de> <1147273917.9755.22.camel@state.g2switchworks.com> <4462098D.2010500@network-inventory.de> <1147275906.9755.25.camel@state.g2switchworks.com> In-Reply-To: <1147275906.9755.25.camel@state.g2switchworks.com> Content-Type: multipart/alternative; boundary="------------030109030204080602000009" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Archive-Number: 200605/271 X-Sequence-Number: 19058 This is a multi-part message in MIME format. --------------030109030204080602000009 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Scott Marlowe wrote: >On Wed, 2006-05-10 at 10:41, Thomas Vatter wrote: > > >>Scott Marlowe wrote: >> >> > > > >>>What happens if you do this by declaring it as a cursor and then >>>fetching the first row? >>> >>> > > > >>> >>> >>> >>I do executeQuery(), for the resultSet I do next() and return one row, >>but wait, I have to review the logic in this area, I can tell you >>tomorrow >> >> > > >A good short test is to run explain analyze on the query from the psql >command line. If it shows an execution time of significantly less than >what you get from you application, then it is likely that the real >problem is that your application is receiving the whole result set via >libpq and waiting for that. A cursor will solve that problem. > >---------------------------(end of broadcast)--------------------------- >TIP 4: Have you searched our list archives? > > http://archives.postgresql.org > > > > Yes, the difference between psql command line and application is 6 seconds to 40 seconds. It is exactly the step resultSet = excecuteQuery() that needs 40 seconds. I use next() as a cursor through the resultSet, but I fear this is not enough, do I have to use createStatement(resultSetType, resultSetConcurrency) respectively prepareStatement (resultSetType, resultSetConcurrency) to achieve the cursor behaviour? regards tom --------------030109030204080602000009 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Scott Marlowe wrote:
On Wed, 2006-05-10 at 10:41, Thomas Vatter wrote:
  
Scott Marlowe wrote: 
    

  
What happens if you do this by declaring it as a cursor and then
fetching the first row?
      

  
  
      
I do executeQuery(), for the resultSet I do next() and return one row,
but wait, I have to review the logic in this area, I can tell you
tomorrow
    


A good short test is to run explain analyze on the query from the psql
command line.  If it shows an execution time of significantly less than
what you get from you application, then it is likely that the real
problem is that your application is receiving the whole result set via
libpq and waiting for that.  A cursor will solve that problem.

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org


  
Yes, the difference between psql command line and application is 6 seconds to 40 seconds. It is
exactly the step resultSet = excecuteQuery() that needs 40 seconds. I use next() as a cursor
through the resultSet, but I fear this is not enough, do I have to use createStatement(resultSetType,
resultSetConcurrency) respectively prepareStatement (resultSetType, resultSetConcurrency) to
achieve the cursor behaviour?

regards
tom

--------------030109030204080602000009--