Обсуждение: BUG #2394: Multiple TRUNCATE within transaction

Поиск
Список
Период
Сортировка

BUG #2394: Multiple TRUNCATE within transaction

От
"Alexander Kirpa"
Дата:
The following bug has been logged online:

Bug reference:      2394
Logged by:          Alexander Kirpa
Email address:      postgres@bilteks.com
PostgreSQL version: 8.1.3
Operating system:   FreeBSD 6.0
Description:        Multiple TRUNCATE within transaction
Details:

Within one transaction each 'TRUNCATE TABLE' - "generate" as minimum one
file: 1 for table plus one on each index.

In case of many truncate (10-100 thousands or more) within one transaction,
postgres receive serious performance problem for current operation (create
and delete 100K files in not to easy task for filesystem) and, in future,
some system wide (postgres) performance lost as result of big size (1-2MB in
my case) of database directory.

IMHO, need create new file only for first of truncate command. For 2, 3, ...
'truncate table' within one transaction need simple truncate self file(s),
this also improve performance especially in case using of temporary tables
by avoid write temporary date on disk.

Best regards,
 Alexander Kirpa

Re: BUG #2394: Multiple TRUNCATE within transaction

От
Tom Lane
Дата:
"Alexander Kirpa" <postgres@bilteks.com> writes:
> In case of many truncate (10-100 thousands or more) within one transaction,
> postgres receive serious performance problem for current operation (create

Why in the world are you doing that, and why do you think we need to
optimize that case?  We don't have infinite manpower, so if you
want this case optimized you had better explain why it deserves
consideration ahead of the long list of other problems ...

> IMHO, need create new file only for first of truncate command. For 2, 3, ...
> 'truncate table' within one transaction need simple truncate self file(s),
> this also improve performance especially in case using of temporary tables
> by avoid write temporary date on disk.

This "simple" fix is pretty debatable anyway because of the existence
of intra-transaction MVCC rules.

            regards, tom lane