Re: Give me a HINT or I'll got crazy ;)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: wstrzalka <wstrzalka(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Give me a HINT or I'll got crazy ;)
Date: 2009-10-08 17:38:52
Message-ID: 26897.1255023532@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

wstrzalka <wstrzalka(at)gmail(dot)com> writes:
> Prior to the playing with statistics target (it was 100 by default) I
> was able to go with the time to 30ms by adding to the query such a
> condition:

So what sort of "playing" did you do? It looks to me like the core of
the problem is the sucky join size estimate here:

> -> Hash Join (cost=101.53..15650.39 rows=95249 width=8) (actual
> time=1102.977..1342.675 rows=152 loops=1)
> Hash Cond: (mal.message_id = m.messageid)

If it were correctly estimating that only a few message_address_link
rows would join to each messages row, it'd probably do the right thing.
But it seems to think there will be thousands of joins for each one...

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Scott Bailey 2009-10-08 17:39:02 Re: Tips/Hacks to create minial DB from the execution of several (simple) SQL requests.
Previous Message Emanuel Calvo Franco 2009-10-08 16:58:59 Re: How to reduce WAL file Size