Re: not exits slow compared to not in. (nested loops killing me)

From: "mark" <dvlhntr(at)gmail(dot)com>
To: "'Craig Ringer'" <craig(at)postnewspapers(dot)com(dot)au>
Cc: <pgsql-performance(at)postgresql(dot)org>
Subject: Re: not exits slow compared to not in. (nested loops killing me)
Date: 2011-06-07 00:16:12
Message-ID: 005701cc24a8$1cdf1770$569d4650$@com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance


> -----Original Message-----
> From: Craig Ringer [mailto:craig(at)postnewspapers(dot)com(dot)au]
> Sent: Monday, June 06, 2011 5:08 PM
> To: mark
> Cc: pgsql-performance(at)postgresql(dot)org
> Subject: Re: [PERFORM] not exits slow compared to not in. (nested loops
> killing me)
>
> On 06/07/2011 04:38 AM, mark wrote:
>
> > NOT EXISTS (with 64MB of work_mem)
> > http://explain.depesz.com/s/EuX
>
> Hash Anti Join (cost=443572.19..790776.84 rows=1 width=1560)
> (actual time=16337.711..50358.487 rows=2196299 loops=1)
>
> Note the estimated vs actual rows. Either your stats are completely
> ridiculous, or the planner is confused.

I am starting to think the planner might be confused in 9.0.2. I got a
reasonable query time, given resource constraints, on a very small VM on my
laptop running 9.0.4.

I am going to work on getting the vm I was using to test this with up to
9.0.4 and test again.

There is a note in the 9.0.4 release notes
" Improve planner's handling of semi-join and anti-join cases (Tom Lane)"

Not sure that is the reason I got a much better outcome with a much smaller
vm. But once I do some more testing I will report back.

>
> What are your stats target levels? Have you tried increasing the stats
> levels on the table(s) or at least column(s) affected? Or tweaking
> default_statistics_target if you want to use a bigger hammer?

Will try that as well. Currently the default stat target is 100. Will try at
250, and 500 and report back.

>
> Is autovacuum being allowed to do its work and regularly ANALYZE the
> database? Does an explicit 'ANALYZE' help?

Auto vac is running, I have explicitly vacuum & analyzed the whole db. That
didn't change anything.

>
> --
> Craig Ringer

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Didik Prasetyo 2011-06-07 07:47:59 i want to ask monitory peformance memory postgresql with automatically
Previous Message Tom Lane 2011-06-07 00:09:40 Re: not exits slow compared to not in. (nested loops killing me)