Skip site navigation (1) Skip section navigation (2)

Re: Slow Query problem

From: Andreas Joseph Krogh <andreak(at)officenet(dot)no>
To: pgsql-sql(at)postgresql(dot)org
Cc: "Premsun Choltanwanich" <Premsun(at)nsasia(dot)co(dot)th>
Subject: Re: Slow Query problem
Date: 2008-01-28 12:26:33
Message-ID: 200801281326.33832.andreak@officenet.no (view raw or flat)
Thread:
Lists: pgsql-sql
On Monday 28 January 2008 08:18:24 Premsun Choltanwanich wrote:
> Dear All,
>
> I am currently using PostgreSQL database version 8.0.13.  My problem
> relates to a slow result when a query using a defined view joins to another
> table for a result.
>
> Background:  I have 7 tables of invoice transactions.  The tables are
> slightly different in that they record different data (some different
> columns in each table).  There are about 250,000 records when a union view
> is created.  A simply query on this union performs satisfactorily.
>
> The invoice table union view is then joined with a table of receipts (which
> have a total of about 150,000 records).
>
> It takes around 3.5 seconds for "select * from view_transaction where
> member_id = 999  and receipt_no is null" (which returns unpaid invoices).
>
> By hard coding I created a single table from the 7 invoice tables (instead
> of creating a union) and then used it with receipt table.  This time for
> the same query improved to 1.8 seconds.
>
> To further improve things I tried to code the selection rather than to use
> a view, and so "select * from temp_transaction where member_id = 999 and
> receipt_no is null" provided the result in .5 second. (2 records returned
> containing the details of receipt_no, transaction_no, transaction_type,
> transaction_amount, member_id).
>
> I would prefer to be able to have completed the above by using unions and
> views.  Is it possible to do this, or am I better creating a permanent
> table of invoices and writing the query as I did above?
>
> Any comments on this and suggestions would be appreciated.  If there is
> documentation where I can read up please let me have a link.

It is very hard to help without you providing the schema for the tables/views 
involved. It sounds like you don't have any indexes if you experience 
performance-problems on queries like "select * from view_transaction where 
member_id = 999  and receipt_no is null". But again, without the definition 
of the view and underlying tables, it's very hard to help.

-- 
Andreas Joseph Krogh <andreak(at)officenet(dot)no>
Senior Software Developer / Manager
------------------------+---------------------------------------------+
OfficeNet AS            | The most difficult thing in the world is to |
Karenslyst Allé 11      | know how to do a thing and to watch         |
PO. Box 529 Skøyen      | somebody else doing it wrong, without       |
0214 Oslo               | comment.                                    |
NORWAY                  |                                             |
Tlf:    +47 24 15 38 90 |                                             |
Fax:    +47 24 15 38 91 |                                             |
Mobile: +47 909  56 963 |                                             |
------------------------+---------------------------------------------+

In response to

Responses

pgsql-sql by date

Next:From: Tom LaneDate: 2008-01-28 17:20:06
Subject: Re: Slow Query problem
Previous:From: Premsun CholtanwanichDate: 2008-01-28 07:18:24
Subject: Slow Query problem

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group