Re: query takes 65 times longer if I add 1 column (explain attached)

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Dan Weber" <weberdan(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: query takes 65 times longer if I add 1 column (explain attached)
Date: 2006-11-02 17:35:19
Message-ID: 18184.1162488919@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Dan Weber" <weberdan(at)gmail(dot)com> writes:
> I've got a query that takes a very long time to execute if I add an
> additional column to the SELECT clause.

What have you got work_mem set to?

I'm guessing that the case where it doesn't add the Materialize node is
because it estimates the size of the data-to-be-materialized as more
than work_mem, which means that Materialize would require a temp file,
which causes a fairly big jump in the estimated cost of materializing,
which makes the no-materialize plan look cheaper. The two plans have
nearly the same estimated cost so it wouldn't take much to make that
happen.

The fact that the estimates diverge so far from reality can no doubt be
blamed on the horridly bad rowcount estimates: 3 rows estimated vs
179 actual for table_one, and 128592 estimated vs 4202 actual for
table_two. Have you ANALYZEd these tables lately?

regards, tom lane

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Andrew Sullivan 2006-11-02 17:51:16 Re: Postgres-R
Previous Message Anton P. Linevich 2006-11-02 17:16:24 Postgres-R