From: | PFC <lists(at)peufeu(dot)com> |
---|---|
To: | Justin <justin(at)emproshunts(dot)com>, pgsql-performance(at)postgresql(dot)org |
Subject: | Re: need to speed up query |
Date: | 2008-05-06 07:02:42 |
Message-ID: | op.uap0issmcigqcu@apollo13.peufeu.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
> i've had to write queries to get trail balance values out of the GL
> transaction table and i'm not happy with its performance The table has
> 76K rows growing about 1000 rows per working day so the performance is
> not that great it takes about 20 to 30 seconds to get all the records
> for the table and when we limit it to single accounting period it drops
> down to 2 seconds
What is a "period" ? Is it a month, or something more "custom" ? Can
periods overlap ?
> COALESCE(( SELECT sum(gltrans.gltrans_amount) AS sum
> FROM gltrans
> WHERE gltrans.gltrans_date < period.period_start
> AND gltrans.gltrans_accnt_id = accnt.accnt_id
> AND gltrans.gltrans_posted = true), 0.00)::text::money AS
> beginbalance,
Note that here you are scanning the entire table multiple times, the
complexity of this is basically (rows in gltrans)^2 which is something
you'd like to avoid.
From | Date | Subject | |
---|---|---|---|
Next Message | Frank van Vugt | 2008-05-06 08:21:43 | plan difference between set-returning function with ROWS within IN() and a plain join |
Previous Message | Justin | 2008-05-06 05:48:29 | Re: need to speed up query |