Если я остановлю длительный запрос, произойдет ли откат?
Ваш запрос не заключен в 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
Если я остановлю длительный запрос, произойдет ли откат?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.