Я не уверен, какова структура ваших данных.Когда строка становится подходящей для удаления?Если это чисто идентификатор, основанный на дате, то вы можете создавать новую таблицу на каждый день, вставлять новые данные в новые таблицы, а когда дело доходит до очистки, просто отбрасывать необходимые таблицы.Затем для любого выбора построить вид на все таблицы.Просто идея.
РЕДАКТИРОВАТЬ: (В ответ на комментарии) Если вы поддерживаете просмотр всех таблиц, то нет, это не будет сложно вообще.Сложная часть заключается в кодировании удаления и повторного создания представления.
Я предполагаю, что вы не хотите, чтобы ваши данные слишком сильно блокировались при удалении.Почему бы не разделить операции удаления.Создал SP, который будет удалять данные порциями по 50 000 строк за раз.Это должно гарантировать, что SQL Server сохраняет блокировку строки вместо блокировки таблицы.Используйте
WAITFOR DELAY 'x'
в вашем цикле while, чтобы вы могли дать другим запросам немного передышки.Ваша проблема - компьютерная наука старости, пространство против времени.