One of the problems with "Empty Table optimization" is that if there are
indexes created then it is considered as no longer empty.
Commercial databases have options like "IRRECOVERABLE" clause along
with DISK PARTITIONS and CPU partitions for their bulk loaders.
So one option turns off logging, disk partitions create multiple
processes to read various lines/blocks from input file and other various
blocks to clean up the bufferpools to disk and CPU partitions to process
the various blocks/lines read for their format and put the rows in
bufferpool if successful.
Regards,
Jignesh
Simon Riggs wrote:
On Tue, 2008-02-05 at 15:05 +0000, Richard Huxton wrote:
Only by locking the table, which serializes access, which then slows you
down or at least restricts other options. Plus if you use pg_loader then
you'll find only the first few rows optimized and all the rest not.
Hmm - the table-locking requirement is true enough, but why would
pg_loader cause problems after the first few rows?
It runs a stream of COPY statements, so only first would be optimized
with the "empty table optimization".
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq