LINUX.ORG.RU

[postgres] как временно отключить перестройку индексов?


0

0

Во время транзакции?

Надо сделать много инсертов. Load from file использовать нельзя.

Хочется стартовать транзакцию, отключить перестроение индексов для определённой таблицы или в рамках этой конкретной транзакции, сделать с таблицей всё, что хочется, включить обратно перестроение индексов, завершить транзакцию. Но позволяет ли такие вещи PostgreSQL?

Ответ на: комментарий от hizel

> http://www.postgresql.org/docs/8.4/interactive/populate.html
Ну то есть никак?

14.4.1. Disable Autocommit

Это само взлетит через BEGIN;/COMMIT; .

14.4.2. Use COPY

Нет возможности.

14.4.3. Remove Indexes

14.4.4. Remove Foreign Key Constraints


Вот тут могу ошибаться, но, насколько я понимаю, если делать DROP INDEX, индекс слетит для всех пользователей, а не только для данной транзакции. То есть все, кто в данный момент параллельно что-то селектит из обрабатываемой таблицы, нормально работать не смогут. Или не так?

Ну а дальше идут просто описания вариантов оптимизации самого процесса СУБД.

sivanov
() автор топика
Ответ на: комментарий от AnDoR

> А они разве перестраиваются не после проведения всей транзакции?

А внутри транзакции Вы что будете делать если Вам нужно будет их использовать? :)

Eshkin_kot ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.