DELETE or TRUNCATE?

Поиск
Список
Период
Сортировка
От François Beausoleil
Тема DELETE or TRUNCATE?
Дата
Msg-id E0C28CD9-4FA9-4C00-A6D2-9C9FE88DF2CC@teksol.info
обсуждение исходный текст
Ответы Re: DELETE or TRUNCATE?  (chiru r <chirupg@gmail.com>)
Список pgsql-general
Hi!

I have a process that replaces the contents of a table. The canonical data store is somewhere else. At the moment, the
importlooks like this: 

CREATE TEMPORARY TABLE markets_import( LIKE x INCLUDING ALL );
COPY markets_import FROM STDIN;
...
\.
-- COPY a bunch of other tables

BEGIN;

TRUNCATE markets;
INSERT INTO markets SELECT * FROM markets_import;
-- do the other tables here as well

COMMIT;

VACUUM ANALYZE markets;

Sometimes, the import process will block on the TRUNCATE because some other query already holds a ShareLock on the
marketstable, because it's doing a long report. I'm guessing TRUNCATE prevents the use of MVCC, and DELETE would be
betterin this case? Especially since I'm doing a VACUUM ANALYZE at the end anyway. 

Thanks!
François
Вложения

В списке pgsql-general по дате отправления:

Предыдущее
От: Ioana Danes
Дата:
Сообщение: Re: Running out of memory at vacuum
Следующее
От: Adrian Klaver
Дата:
Сообщение: Re: FATAL: database "a/system_data" does not exist