From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Martijn van Oosterhout <kleptog(at)svana(dot)org> |
Cc: | Phil Endecott <spam_from_postgresql_general(at)chezphil(dot)org>, pgsql-general(at)postgresql(dot)org |
Subject: | Re: Temporary tables and disk activity |
Date: | 2004-12-12 18:59:04 |
Message-ID: | 7187.1102877944@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Martijn van Oosterhout <kleptog(at)svana(dot)org> writes:
> I don't think temporary tables have any special rules regarding disk
> writes, so I'd expect them ot get written out like everything else.
They'll be written out from PG's internal buffers, but IIRC they will
never be fsync'd, and they definitely aren't WAL-logged. (These
statements hold true in 8.0, but not sure how far back.)
In principle, therefore, the kernel could hold temp table data in its
own disk buffers and never write it out to disk until the file is
deleted. In practice, of course, the kernel doesn't know the data is
transient and will probably push it out whenever it has nothing else to
do.
One of the things on the TODO list is making the size of temp-table
buffers user-configurable. (Temp table buffers are per-backend, they
are not part of the shared buffer arena.) With a large temp-table arena
we'd never need to write to the kernel in the first place. Right now
you could manually increase the #define that sets it, but it would not
pay to make it very large because the management algorithms are very
stupid (linear scans). That has to be fixed first :-(
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Fuhr | 2004-12-13 00:35:50 | Re: PREPARED STATEMENT |
Previous Message | Martijn van Oosterhout | 2004-12-12 18:19:14 | Re: Temporary tables and disk activity |