Бих проверил дали вашите актуализации са в рамките на транзакция. Ако са, това може да обясни защо умира след определено количество "модифицирани" данни. Може да проверите колко голям става вашият "tempdb" като индикатор.
Също така съм виждал случаи, когато по време на дълготрайни транзакции базата данни ще умре, когато има други „употреби“ по същото време, отново поради използваните транзакционност и неправилни нива на изолация.
Ако можете да разделите работата си на независими незастъпващи се части, може да искате да го направите:например да вършите работата на части по дати, ID диапазони на „коренни“ обекти и т.н.