Есть две "силы" на работе ....
замок
во время вашей открытой транзакции oracle блокирует измененные строки.
всякий раз, когда другой транзакции необходимо обновить любую из заблокированных строк,
это должно ждать.
в худшем случае вы можете даже завести тупик.
синхронная запись
каждый коммит выполняет синхронную запись.
(есть способы отключить это, но обычно это то, что каждый хочет: целостность).
эта синхронная запись может занять (намного) больше времени, чем обычная запись (которая может быть буферизована).
Не стоит забывать, что обычно существует дополнительный обход в сети, связанный с фиксацией.
итак, одна сила говорит «совершать как можно быстрее (учитывая ваши требования целостности)», другая говорит «совершать как можно реже».
Есть и другие вопросы, которые следует рассмотреть, например, максимальный размер транзакции. каждая незафиксированная транзакция требует некоторого временного пространства. чем больше транзакция, тем больше вам нужно. Вы также можете столкнуться с ORA-01555 «Снимок слишком старый».
Если есть какой-либо совет, то он должен реализовать настраиваемую «частоту коммитов», чтобы вы могли легко изменить ее при необходимости.