From: "Steinar H. Gunderson" <sgunderson@xxxxxxxxxxx>
On Mon, Oct 30, 2006 at 01:05:07PM +0200, Mattias Kregert wrote:
-> Hash Left Join (cost=59.66..206763.11 rows=1215336
width=27) (actual time=4.959..3228.550 rows=1216434 loops=1)
Hash Cond: (("outer".prislista = ("inner".listid)::text)
AND ("outer".tjanst = ("inner".tjanstid)::text))
Note the conversion to text here. Are you sure the types are matching on
both
sides of the join?
/* Steinar */
On the left side it is text, and on the right side it is varchar(10).
Casting left side to varchar(10) does not help, in fact it makes things even
worse: The cast to ::text vanishes in a puff of logic, but the plan gets
bigger and even slower (20-25 seconds).
A RIGHT join takes only 20 milliseconds, but i want the left join because
there could be missing rows in the "prislist" table...
/* m */