| From: | Jeff Janes <jeff(dot)janes(at)gmail(dot)com> | 
|---|---|
| To: | Soni M <diptatapa(at)gmail(dot)com> | 
| Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> | 
| Subject: | Re: Query planner question | 
| Date: | 2014-08-23 06:04:33 | 
| Message-ID: | CAMkU=1xsFm4p_0K-R+i_WuGL4whAB2fwbDE7xwg3fXZMR1j8Dg@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
On Wednesday, August 20, 2014, Soni M <diptatapa(at)gmail(dot)com> wrote:
> Hi Everyone,
>
> I have this query :
>
> select t.ticket_id ,
> tb.transmission_id
> from ticket t,
> transmission_base tb
> where t.latest_transmission_id = tb.transmission_id
> and t.ticket_number = tb.ticket_number
> and tb.parse_date > ('2014-07-31');
>
> Execution plan: http://explain.depesz.com/s/YAak
>
> Indexes on ticket :
>     "ticket_pkey" PRIMARY KEY, btree (ticket_id) CLUSTER
>     "ticket_by_latest_transmission" btree (latest_transmission_id)
>     "ticket_by_ticket_number" btree (ticket_number)
>
> This query only returns some portions of rows from ticket table.
> The question is, Why does postgres need to get all the rows from ticket
> table in order to complete this query?
> Can't postgres use indexes to get only needed rows on ticket table?
>
It can, but having separate indexes on latest_transmission_id and
ticket_number is not going to work.
You need a joint index on both columns.
Cheers,
Jeff
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alban Hertroys | 2014-08-23 09:33:10 | Re: Query planner question | 
| Previous Message | David G Johnston | 2014-08-23 03:57:57 | Re: Query planner question |