Добрый день !
Есть 200 000 разнородных объектов (документы, элементы справочников и т.д.)
Предполагается пометка этих объектов на удаление (возможно изменение)
Вопрос: Какой оптимальный размер транзакции ?
(Может есть какие то рекомендованные значения? База PostgreSQL)
2.1. В общем случае в рамках одной транзакции нужно выполнять только те действия, которые неделимы, исходя из бизнес-логики.
2.1.1. Если с точки зрения бизнес-логики действия могут быть выполнены по отдельности, то их в общем случае не следует объединять в одну транзакцию.
2.2. Следует избегать транзакций, которые выполняются длительное время.
вообще в транзакцию включают какие-то взаимосвязанные действия.
если какое-то из связанных действий не выполнилось то все предыдущие отменяются,
а если действия атомарные, типа пометки удаления то их и не нужно включать в транзакцию!
у вас же не стоит условие что если хотя бы один документ не пометился на удаление то и остальные 2000000 не помечать?
(4) транзакция разве не ускоряет выполнение ? (на файловой базе точно ускоряет)
в данном случае планируется использовать транзакцию только для ускорения процесса ...
(5) нет конечно! скорее всего даже тормозит!
как и любой другой дополнительный функционал! (все что выполняет какие-то дополнительные функции - требует время!)
на транзакции только при отмене, можно что-то выиграть, так как не надо весь предыдущий код "отматывать" назад