Re: : PostgreSQL Index behavior
От | Venkat Balaji |
---|---|
Тема | Re: : PostgreSQL Index behavior |
Дата | |
Msg-id | CAFrxt0iehqe4m3jympYeCMc1xrjHUan=kcEBXpXqZKe0_UzJZw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: : PostgreSQL Index behavior (Jeff Janes <jeff.janes@gmail.com>) |
Ответы |
Re: : PostgreSQL Index behavior
(Scott Marlowe <scott.marlowe@gmail.com>)
|
Список | pgsql-performance |
> explain SELECT tv.short_code, tv.chn as pkg_subscription_chn,...
> tv.vert as pkg_vert, ubs.campaign_id as campaign,
> 'none'::varchar as referer,
> CAST('CAMPAIGNWISE_SUBSCRIBER_BASE' AS VARCHAR) as vn,
> count(tv.msisdn) as n_count, '0'::numeric AS tot_revenue
> FROM campaign_base ubs
> JOIN tab_current_day_v2 tv
> ON ubs.ubs_seq_id = tv.ubs_seq_id
> AND tv.dt = CAST('2012-09-08' AS DATE)
> GROUP BY tv.short_code, tv.vert, tv.chn, ubs.campaign_id, vn;>The query where clause does not specify a constant value for
> The above plan shows "seq scan" on tab_current_day_v2 table, though there is
> an index on "ubs_seq_id" column which is an unique column.
>
> Can anyone please help us understand, why PostgreSQL optimizer is not
> prioritizing the unique column and hitting ubs_seq_id_idx Index here ?
ubs_seq_id. So it is likely that the only way to use that index would
be to reverse the order of the nested loop and seq scan the other
table. Is there any reason to think that doing that would be faster?
> Later -Postgres seems to think that "dt" has no duplicate values, the
>
> We have created composite Index on "dt" (one distinct value) and
> "ubs_seq_id" (no duplicate values) and the index has been picked up.
opposite of having one distinct value.
That is based on the estimates given in the explain plan, that teh seq
scan will return only one row after the filter on Filter: "(dt =
'2012-09-08'::date)". This does seem to conflict with what you
report from pg_stats, but I'm not familiar with that view, and you
haven't told us what version of pgsql you are using.
DISCLAIMER: Please note that this message and any attachments may contain confidential and proprietary material and information and are intended only for the use of the intended recipient(s). If you are not the intended recipient, you are hereby notified that any review, use, disclosure, dissemination, distribution or copying of this message and any attachments is strictly prohibited. If you have received this email in error, please immediately notify the sender and delete this e-mail , whether electronic or printed. Please also note that any views, opinions, conclusions or commitments expressed in this message are those of the individual sender and do not necessarily reflect the views of Ver sé Innovation Pvt Ltd.
В списке pgsql-performance по дате отправления:
Предыдущее
От: Tom LaneДата:
Сообщение: Re: Planner selects different execution plans depending on limit