Если не существует индекса с первым столбцом [DateTimeUtc], вы можете попробовать добавить его.Индексирование столбца в критериях поиска улучшило производительность массового удаления в некоторых наших базах данных.Компромисс заключается в том, что для поддержки записей индекса для вставок и обновлений может потребоваться дополнительное время.
Попробуйте удалить меньше строк за раз.Если вы удалите более 5000 строк одновременно, запрос на удаление может попытаться перейти к блокировке таблицы .Если есть много одновременных действий, попытка получить блокировку таблицы может заблокироваться, в то время как другие запросы завершены.
Например, этот цикл удаляет максимум 4000 строк за раз:
declare @RowCount int = 1
while @RowCount > 0
begin
delete top (4000)
from [log].[HttpRequestLogEntries]
where DateTimeUtc < dateadd(day, -3, getutcdate())
select @RowCount = @@rowcount
end
Также проверьте наличие триггеров базы данных.Если триггер срабатывает при удалении строк, возможно, код в триггере вызывает большую задержку.