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 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.
regards, tom lane