powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как остановить transaction rollback ?
4 сообщений из 4, страница 1 из 1
Как остановить transaction rollback ?
    #32050671
AntonKr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день уважаемые специалисты!
У меня следующая проблема:
долгое время выполнялся INSERT (из двух таблиц) в пустую таблицу ~ 6000000 записей. Спустя 75 часов решил остановить этот процесс, воспользовался KILL. Теперь идет обратный процесс "transaction rollback in progress" и мне сервер предлагает подождать 15000 секунд.
Собственно вопрос: можно ли как-нибудь принудительно остановить откат транзакций? Можно ли установить COMMIT TRANSACTION после вставки каждой записи?

Заранее благодарен.
...
Рейтинг: 0 / 0
Как остановить transaction rollback ?
    #32050678
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Транзакция по своей сути атомарна - т.е. либо все 6000000 записей добавляются, либо ни одна.
...
Рейтинг: 0 / 0
Как остановить transaction rollback ?
    #32050688
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если инсерт выполняется одним оператором нельзя.
Нужно разбить инсерт на несколько операторов, ограниченных параметром TOP и запускать их в цикле с проверкрй по NOT EXISTS в результирующей таблице.
Что-то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
while (exists(select  1  from t1 where not exists(select  1  from t2 where t1.id = t2.id)))
begin
  insert t2 (id, name)
  select top  1000  id, name 
  from t1
  where not exists(select  1  from t2 where t1.id = t2.id)
end
...
Рейтинг: 0 / 0
Как остановить transaction rollback ?
    #32050756
Фотография Белов Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сделать инсерт чуть дольше, но гарантировано, что каждый инсерт будет в своей транзакции - делать через курсор
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как остановить transaction rollback ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]