Re: Guideline on use of temporary tables

From: "Merlin Moncure" <mmoncure(at)gmail(dot)com>
To: "Jimmy Choi" <yhjchoi(at)gmail(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Guideline on use of temporary tables
Date: 2007-10-15 14:13:43
Message-ID: b42b73150710150713p65f79f1arfd6a1ad5461ae7b4@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 10/12/07, Jimmy Choi <yhjchoi(at)gmail(dot)com> wrote:
> I'm looking for general guideline on the use of temporary tables.
>
> I would like to use temporary table as a caching mechanism to speed up
> queries within the same session. Specifically, a temporary table is
> created to store a subset of data from a possibly large table, and
> subsequent queries select from the temporary table instead of
> re-applying the same complex filters on the actual table again and
> again.
>
> Is this what temporary table is designed for? Are there caveats that I
> should be aware of? Can you think of other better alternatives?

well, let's start with listing a couple of reasons reasons _not_ to
use temporary tables.
* your application sessions can't be mapped to database sessions
(usually web environments with connection pooling)
* plan invalidation issues with functions (largely fixed in upcoming 8.3)
* you need tables to be 'global'...shared between sessions
* you are using temp tables in place of a more elegant solution like a
view (this is very situational)

other than the above, go for it; temp tables are faster than regular
tables and give you full benefits of sql for holding and manipulating
your data.

merlin

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Hannes Dorbath 2007-10-15 14:28:30 TSearch chain dictionaries
Previous Message Geoffrey 2007-10-15 13:59:51 Re: reporting tools