[HACKERS] Temporary tables and in-memory use

2011-09-29 Thread Marios Vodas
Hello,

If I'm not wrong, temporary tables stay in memory if they do not go over
temp_buffers limit (e.g. if temp_buffers is 2GB and the size of the table is
300MB the table will remain in memory).
What if a column is variable length (e.g. text), how does this column stay
in-memory since it should be stored in TOAST?
When I build a GiST index on a temporary table does the index stay in memory
as well?

Thank you,
Marios


Re: [HACKERS] Temporary tables and in-memory use

2011-09-29 Thread Tom Lane
Marios Vodas mvo...@gmail.com writes:
 If I'm not wrong, temporary tables stay in memory if they do not go over
 temp_buffers limit (e.g. if temp_buffers is 2GB and the size of the table is
 300MB the table will remain in memory).
 What if a column is variable length (e.g. text), how does this column stay
 in-memory since it should be stored in TOAST?

Well, the toast table is also temp, so it'll get cached in temp_buffers
as well, as long as it fits.

 When I build a GiST index on a temporary table does the index stay in memory
 as well?

Same answer.

Keep in mind that temp_buffers is per process, not global.  Just as with
work_mem, you need to be careful about setting it sky-high.

regards, tom lane

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] Temporary tables and in-memory use

2011-09-29 Thread Marios Vodas
Thank you. The setup is intended for one user environment for complex 
queries and operations that's why I wrote 2GB temp_buffers!

Thank you again, I really appreciate it.
Marios

On 29/9/2011 7:55 μμ, Tom Lane wrote:

Marios Vodasmvo...@gmail.com  writes:

If I'm not wrong, temporary tables stay in memory if they do not go over
temp_buffers limit (e.g. if temp_buffers is 2GB and the size of the table is
300MB the table will remain in memory).
What if a column is variable length (e.g. text), how does this column stay
in-memory since it should be stored in TOAST?

Well, the toast table is also temp, so it'll get cached in temp_buffers
as well, as long as it fits.


When I build a GiST index on a temporary table does the index stay in memory
as well?

Same answer.

Keep in mind that temp_buffers is per process, not global.  Just as with
work_mem, you need to be careful about setting it sky-high.

regards, tom lane



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers