Re: Problem query - Mailing list pgsql-performance

From CS DBA
Subject Re: Problem query
Date
Msg-id 4DE6BCB1.3010706@consistentstate.com
Whole thread Raw
In response to Re: Problem query  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-performance
On 06/01/2011 03:15 PM, Merlin Moncure wrote:
> On Wed, Jun 1, 2011 at 3:14 PM, CS DBA<cs_dba@consistentstate.com>  wrote:
>> Hi All;
>>
>> We have a table with approx 200 columns. about a dozen columns are text data
>> types and the rest are a mix of integers , bigint's and double precision
>> types.
>>
>> The table has about 25million rows.
>>
>>
>> The app wants to run a query like this:
>>
>> select count(pri_num) from max_xtrv_st_t
>> where pri_num in (select max(pri_num) from max_xtrv_st_t where 1=1
>>                                group by tds_cx_ind, cxs_ind_2 )
>>
>> I've tried to split the query up but made little progress, pri_num and
>>   tds_cx_ind are bigint's and  cxs_ind_2 is an integer
>>
>> The table has an index on all 3 columns (3 separate indexes)
>>
>> Anyone have any thoughts on tuning this query?
> need postgres version# and the current explain analyze (or explain, if
> you can't wait for it)
>
> merlin


Postgresql version 8.4.2


Explain:

                                            QUERY PLAN
------------------------------------------------------------------------------------------------
  Aggregate  (cost=6551481.85..6551481.86 rows=1 width=8)
    ->  Nested Loop  (cost=6550474.85..6551481.35 rows=200 width=8)
          ->  HashAggregate  (cost=6550474.85..6550476.85 rows=200 width=8)
                ->  GroupAggregate  (cost=5918263.18..6334840.58
rows=17250742 width=20)
                      ->  Sort  (cost=5918263.18..5968498.96
rows=20094312 width=20)
                            Sort Key: tds_cx_ind, cxs_ind_2
                            ->  Seq Scan on max_xtrv_st_t
(cost=0.00..3068701.12 rows=20094312 width=20)
          ->  Index Scan using max_xtrv_st_t_pkey on max_xtrv_st_t
(cost=0.00..5.01 rows=1 width=8)
                Index Cond: (max_xtrv_st_t.pri_num =
(max(max_xtrv_st_t.pri_num)))
(9 rows)




--
---------------------------------------------
Kevin Kempter       -       Constent State
A PostgreSQL Professional Services Company
           www.consistentstate.com
---------------------------------------------


pgsql-performance by date:

Previous
From: CS DBA
Date:
Subject: Re: Problem query
Next
From: Robert James
Date:
Subject: CLUSTER versus a dedicated table