Лучше делать коммит внутри или вне цикла?

Возможно, на этот вопрос нет простого ответа, но я спрашиваю, если у кого-то есть, если не простой ответ, по крайней мере, понимание.

У меня было несколько случаев, когда я создавал цикл, который просматривает множество записей в таблице базы данных, выполняя некоторое обновление, и где я мог законно сделать одну большую фиксацию в конце или зафиксировать каждую записывайте, как я это обрабатывал. то есть выполнение одной за один раз не вызовет проблем с целостностью данных.

Есть ли ясный случай, который лучше?

На ум приходит то, что у меня была одна такая программа, которую я недавно переключил с одной большой совершить кучу небольших коммитов, потому что это была довольно долгая программа - около 80 минут - и она не прошла на полпути из-за неверных данных. Я исправил проблему и перезапустил, но затем пришлось начинать заново с самого начала, когда я мог просто обработать ранее необработанные записи.

Когда я внес это изменение, я заметил, что время выполнения в любом случае было примерно одинаковым.

5
задан Jay 8 October 2010 в 17:25
поделиться