• I guess that you also don't want to change your archiving mechanism too much.

    If you want to reduce the number of rows processed per execution, you need to reduce the number of days to process in each archive step. 

    One possibility is to create a loop for each day between the last archive run and the current value of @MaxDate and archive/delete records between those two dates.  This would effectively do your archiving on a day by day basis and allow you to catch up for those database that haven't archived anything yet.

    It might take some time to catch up and you might want to put some time restrictions in so that it runs at a quiet time of the day (or night) - it will take more days to complete the archive but would have a lesser impact on the current users.

    It's not a perfect solution but might give you some ideas.

     

    J