Re: Can the V7.3 EXPLAIN ANALYZE be trusted?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Steven Rosenstein" <srosenst(at)us(dot)ibm(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Can the V7.3 EXPLAIN ANALYZE be trusted?
Date: 2005-02-06 22:46:05
Message-ID: 17152.1107729965@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

> From: pgsql-performance-owner(at)postgresql(dot)org [mailto:pgsql-performance-owner(at)postgresql(dot)org]On Behalf Of Steven Rosenstein
> >> I don't think EXPLAIN ANALYZE puts that much overhead on a query.

I think you're being overly optimistic. The explain shows that the
Materialize subnode is being entered upwards of 32 million times:

-> Materialize (cost=505.06..511.38 rows=632 width=4) (actual time=0.00..0.02 rows=43 loops=752066)

43 * 752066 = 32338838. The instrumentation overhead is basically two
gettimeofday() kernel calls per node entry. Doing the math shows that
your machine is able to do gettimeofday() in about half a microsecond,
which isn't stellar but it's not all that slow for a kernel call.
(What's the platform here, anyway?) Nonetheless it's a couple of times
larger than the actual time needed to pull a row from a materialized
array ...

The real answer to your question is "IN (subselect) sucks before PG 7.4;
get a newer release".

regards, tom lane

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Jan Wieck 2005-02-06 23:06:03 Re: PostgreSQL clustering VS MySQL clustering
Previous Message Greg Stark 2005-02-06 22:34:47 Re: Can the V7.3 EXPLAIN ANALYZE be trusted?