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: | Raw Message | Whole Thread | 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 |