Hi!

I have an application, where I have to insert data into a table at several
rows per second, 24 hours a day, 365 days a year.

After some period (a week, maybe a month) the data will be reducted to some
degree and deleted from the table.

As far as I understood, I would have to use VACUUM to really free the table
from deleted rows - but VACUUM (esp. on a table with several million rows)
takes some time and prevents me from inserting new data.

Now, I thought I could just rename the table, inserting into a temp table, and
switch the tables back after VACUUMing. Ideally, this should work unnoticed
(and thus without prog. effort) on the client (inserter) side.

Question: would it work to use a transaction to perform the rename?

i.e.: continuous insert into table 'main' from client.

 From somewhere else, execute:

begin;
alter table main rename to vac_main;
create table main (...);
end;

would the inserter notice this? Read: would ALL inserts AT ANY TIME succeed?

I know, I could simulate such functionality in the client (inserter). But it
seems more elegant this way...

Greetings,
        Joerg
+------****  Science & Engineering Applications GmbH  ****------+
|                                                               |
| Joerg Hessdoerfer                                             |
| Leading SW developer Phone:    +49 (0)2203-962211             |
| S.E.A GmbH           Fax:                 -962212             |
| D-51147 Koeln        Internet: [EMAIL PROTECTED] |
|                                http://www.sea-gmbh.com        |
+---------------------------------------------------------------+

Reply via email to