Jeg vil tjekke, om dine opdateringer er inden for en transaktion. Hvis de er, kan det forklare, hvorfor det dør efter en vis mængde "modificerede" data. Du kan måske tjekke, hvor stor din "tempdb" bliver som en indikator.
Jeg har også set tilfælde, hvor databasen under langvarige transaktioner ville dø, når der er andre "anvendelser" på samme tid, igen på grund af transaktionalitet og ukorrekte isolationsniveauer.
Hvis du kan opdele dit job i uafhængige, ikke-overlappende bidder, vil du måske gøre det:som at udføre jobbet i bidder efter datoer, ID-intervaller af "rod"-objekter osv.