Если я остановлю длительный запрос, произойдет ли откат?

Ваш запрос не заключен в ms-sql-server транзакцию, поэтому он не sql-query будет отменять изменения, уже sql-server внесенные отдельными операторами sql-select удаления.

Я специально проверил sql-syntax это сам на своем собственном duplicate-data SQL Server, используя следующий sqlselect запрос, и таблица ApplicationLog sql-server была пуста, хотя я отменил sql-syntax запрос:

declare @count int
select @count = 5
WHILE @count > 0
BEGIN
  print @count
  delete from applicationlog;
  waitfor time '20:00';
  select @count = @count -1
END

Однако ваш запрос, скорее sql-server всего, займет много дней ms-sql-server или недель, гораздо больше, чем sql-server 15 часов. Ваша оценка, что ms-sql-server вы можете обрабатывать 2000 select-statement записей каждые 6 секунд, неверна, потому ms-sql-server что каждая итерация в вашем duplicate-data цикле while займет значительно sql-query больше времени с 17 миллионами sqlselect строк, чем с 2000 строками. Поэтому, если duplicate-data ваш запрос не занимает значительно sqlselect меньше секунды для 2000 строк, для sql-syntax всех 17 миллионов потребуется sql-syntax несколько дней.

Вам следует sql-select задать новый вопрос о том, как sql-srever эффективно удалять повторяющиеся sqlselect строки.

sql

sql-server

duplicate-data

2022-07-29T23:07:00+00:00