Re: Create and drop temp table in 8.3.4

From: "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov>
To: <pgsql-performance(at)postgresql(dot)org>, "Kevin Grittner" <Kgrittn(dot)CCAP(dot)Courts(at)wicourts(dot)gov>
Subject: Re: Create and drop temp table in 8.3.4
Date: 2008-11-05 23:16:11
Message-ID: 4911D4DB.EE98.0025.0@wicourts.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

>>> "Kevin Grittner" <Kevin(dot)Grittner(at)wicourts(dot)gov> wrote:
> I'm going to get the latest snapshot to see if the issue has changed
> for 8.4devel

In testing under today's snapshot, it seemed to take 150,000 writes to
create and drop 1,000 temporary tables within a database transaction.
The numbers for the various versions might be within the sampling
noise, since the testing involved manual steps and required saturating
the queues in PostgreSQL, the OS, and the RAID controller to get
meaningful numbers. It seems like the complaints of slowness result
primarily from these writes saturating the bandwidth when a query
generates a temporary table in a loop, with the increased impact in
later releases resulting from it getting through the loop faster.

I've started a thread on the hackers' list to discuss a possible
PostgreSQL enhancement to help such workloads. In the meantime, I
think I know which knobs to try turning to mitigate the issue, and
I'll suggest rewrites to some of these queries, to avoid the temporary
tables.

If I find a particular tweak to the background writer or some such is
particularly beneficial, I'll post again.

-Kevin

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Tom Lane 2008-11-06 01:35:12 Re: Create and drop temp table in 8.3.4
Previous Message Scott Carey 2008-11-05 22:19:32 Re: Query planner cost estimate less than the sum of its parts?