Re: Temporary table retains old contents on update eventually
От | Gavin Sherry |
---|---|
Тема | Re: Temporary table retains old contents on update eventually |
Дата | |
Msg-id | Pine.LNX.4.58.0607182214370.11554@linuxworld.com.au обсуждение исходный текст |
Ответ на | Temporary table retains old contents on update eventually causing slow temp file usage. (Rusty Conover <rconover@infogears.com>) |
Ответы |
Re: Temporary table retains old contents on update eventually causing slow temp file usage.
|
Список | pgsql-performance |
On Tue, 18 Jul 2006, Rusty Conover wrote: > Hi, > > It would seem that doing any changes on a temp table forces a copy of > the entire contents of the table to be retained in memory/disk. Is > this happening due to MVCC? Is there a way to change this behavior? > It could be very useful when you have really huge temp tables that > need to be updated a few times before they can be dropped. This is caused by our MVCC implementation. It cannot be easily changed. We rely on MVCC for two things: concurrency and rolling back of aborted commands. Without the latter, we couldn't support the following trivially: template1=# create temp table bar (i int); CREATE TABLE template1=# begin; BEGIN template1=# insert into bar values(1); INSERT 0 1 template1=# abort; ROLLBACK template1=# select * from bar; i --- (0 rows) It would be nice if we could special case temp tables because of the fact that concurrency does not come into the equation but I cannot see it happening without a generalised overwriting MVCC system. The only alternative in the mean time is to vacuum your temporary table(s) as part of your interaction with them. Thanks, Gavin
В списке pgsql-performance по дате отправления: