Hey Shaun,

Thanks for quick reply

We have not changed the default_statistics_target, so it shall remain to
its default value 100.

I would like to share our observation on this if you can infer anything
from it. : It started using  query plan 1 after a our scheduled vacuum run
and it continued to use the plan for a day till next day scheduled vacuum
run. it switched to optimal query plan 2 and slowness disappeared after
then.

However this is what we are thinking to do incase if resurface :

1. run vacuum analyse (assuming it will help to query planner to choose
best possible path as it updates the stats in pg_statistic).
2. If it does not work, increase the default_statistics_target for the
column.

Let us know your thoughts.

On Thu, Nov 6, 2014 at 7:39 PM, Shaun Thomas <stho...@optionshouse.com>
wrote:

> Hi Krit,
>
> It looks like your actual problem is here:
>
> >  Index Scan using t1_orderid_creationtime_idx on t1
> >  (cost=0.43..1181104.36 rows=9879754 width=158)
> >  (actual time=0.021..60830.724 rows=2416614 loops=1
>
> This index scan estimates 9.8M rows, and had to touch 2.4M. The issue is
> that your LIMIT clause makes the planner overly optimistic. The worst case
> cost estimate for this part of the query is about 1.2M, which is much
> higher than the SEQ SCAN variation you posted. The planner must think it
> can get the rows without incurring the full cost, otherwise I can't see how
> the 1.2M cost estimate wasn't rolled into the total estimate.
>
> Unfortunately behavior like this is pretty common when using LIMIT
> clauses. Sometimes the planner thinks it can get results much faster than
> it actually can, and it ends up reading a much larger portion of the data
> than it assumed would be necessary.
>
> Just out of curiosity, Can you tell me what your default_statistics_target
> is?
>
> ______________________________________________
>
> See http://www.peak6.com/email_disclaimer/ for terms and conditions
> related to this email
>



-- 
Kirit Parmar

Reply via email to