| From: | Joerg Hessdoerfer <Joerg(dot)Hessdoerfer(at)sea-gmbh(dot)com> |
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Continuous inserts... |
| Date: | 2000-08-17 14:30:30 |
| Message-ID: | 4.3.2.7.0.20000817162006.00af3db0@192.168.0.1 |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
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: joerg(dot)hessdoerfer(at)sea-gmbh(dot)com |
| http://www.sea-gmbh.com |
+---------------------------------------------------------------+
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Ross J. Reedstrom | 2000-08-17 14:38:42 | Re: car mileage summation / sledgehammer method |
| Previous Message | Andreas Tille | 2000-08-17 14:05:53 | Beginner problems with functions (Was: Is this the wrong list?) |