Re: Temp tables performance question - Mailing list pgsql-hackers

From Hannu Krosing
Subject Re: Temp tables performance question
Date
Msg-id 396E30DC.3241D9CD@tm.ee
Whole thread Raw
In response to Temp tables performance question  (Hannu Krosing <hannu@tm.ee>)
List pgsql-hackers
Tom Lane wrote:
> 
> Hannu Krosing <hannu@tm.ee> writes:
> > I have a question about performance issues related to temporary tables.
> > IIRC temporary tables were implemented as ordinary tables with some
> > pre/post-processing to give them unique names so that they would not
> > clash with similar-named tables from other sessions.
> 
> Right, there's basically no performance difference at all from ordinary
> tables.
> 
> It'd be possible to have them go through the "local buffer manager"
> for their entire lives, rather than only for the transaction in which
> they are created, as happens for ordinary tables.  This would avoid
> at least some shared-buffer-manipulation overhead.  I'm not sure it'd
> buy a whole lot, but it probably wouldn't take much work to make it
> happen, either.

I was hoping that at least fsync()'s could be avoided on temp tables 
even without -F.

Other kinds of improvemants should be possible too, due to the 
essentially non-transactional nature of temp tables.

> I think it would be folly to try to make them use a different smgr or
> avoid WAL; that'd require propagating differences between ordinary and
> temp tables into way too many places.

Does using a different storage manager really need propagating
differences 
in other places than the storage manager code ? 

In an ideal world it should not be so ;)

-----------
Hannu


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Questions relating to "modified while in use" messages
Next
From: JanWieck@t-online.de (Jan Wieck)
Date:
Subject: Re: Vacuum only with 20% old tuples