From: | "Sabin Coanda" <sabin(dot)coanda(at)deuromedia(dot)ro> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | VACUUM cannot be executed from multi-command string |
Date: | 2008-11-19 15:26:34 |
Message-ID: | gg1b88$1oco$1@news.hub.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Hi there,
I upgrade "PostgreSQL 8.2.4 on i686-pc-mingw32, compiled by GCC gcc.exe
(GCC) 3.4.2 (mingw-special)" to "PostgreSQL 8.3.5, compiled by Visual C++
build 1400".
I found the new Postgres version doesn't allowed to run a script file which
contains multiline statements, which was working at the previous version.
Trying to do it I get the error:
ERROR: VACUUM cannot be executed from a function or multi-command string
This cause a bad performance running a script with more than 20000
statements. I suppose this behavior is required to have transactional update
on the whole script file, but this is a feature I didn't need in my
scenario.
In the previous version I made some tests with and without vacuum, and I
found the following results:
- without vacuum:
1000 rows in 1 min
2000 rows in 3 min
3000 rows in 7,5 min
... and the time rises geometrically, at 20000 getting hours
- with vacuum on every 20 statements
1000 rows in 30 sec
2000 rows in 70 sec
3100 rows in 120 sec
... and it rises lineary with the script length, at 20000 getting about 10
minutes.
Can anybody help me to find a solution with the new vacuum constraint,
without loosing the performance ?
TIA,
Sabin
From | Date | Subject | |
---|---|---|---|
Next Message | Ryan Wells | 2008-11-19 15:30:39 | Re: Left Join Question |
Previous Message | A. Kretschmer | 2008-11-19 13:37:19 | Re: custom serial number |