Re: stange optimizer results

Stephan Szabo <sszabo@megazone23.bigpanda.com>

From: Stephan Szabo <sszabo@megazone23.bigpanda.com>
To: "Peter T. Brown" <peter@memeticsystems.com>
Cc: <pgsql-performance@postgresql.org>
Date: 2002-11-21T18:34:14Z
Lists: pgsql-performance
On 21 Nov 2002, Peter T. Brown wrote:

> Hello--
>
> Attached is a file containing two SQL queries. The first take
> prohibitively long to complete because, according to EXPLAIN, it ignore
> two very important indexes. The second SQL query seems almost identical
> to the first but runs very fast because, according to EXPLAIN, it does
> uses all the indexes appropriately.
>
> Can someone please explain to me what the difference is here? Or if
> there is something I can do with my indexes to make the first query run
> like the second?

It doesn't take into account that in general a=b, b=constant implies
a=constant.

 Perhaps if you used explicit join syntax for visitor joining
visitorextra it might help.  Like doing:
 FROM visitor inner join visitorextra on (...)
  left outer join ...