Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Запустил длинную транзакцию  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Сервер 2008R2
Запустил на отладку процедуру, которая зациклилась.
Выполняется динная транзакция.
Нажимаю красную кнопку "стоп", жду минут 10, всё откатывается назад.
Вопрос: командой kill я сделаю то же самое или всё произойдёт быстрее?
Что будет с транзакцией?
30 авг 13, 16:21    [14777033]     Ответить | Цитировать Сообщить модератору
 Re: Запустил длинную транзакцию  [new]
saycale
Member

Откуда: Москва->Сидней
Сообщений: 32
Выполнение команды kill вызовет откат транзакции, который должен быть завершён в любом случае, тут даже перезагрузка сервера не поможет, откат будет продолжаться даже после перезагрузки. Можно поэкспериментировать в Вашем конкретном случае открыв новую сессию и наблюдая на процессом, например через sp_who2.
30 авг 13, 16:32    [14777086]     Ответить | Цитировать Сообщить модератору
 Re: Запустил длинную транзакцию  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
saycale,

то есть по времени это будет тоже самое?
30 авг 13, 16:41    [14777142]     Ответить | Цитировать Сообщить модератору
 Re: Запустил длинную транзакцию  [new]
Гость333
Member

Откуда:
Сообщений: 3683
defragmentator
то есть по времени это будет тоже самое?

То же самое. В любом случае серверу нужно будет прочитать из transaction log записи, относящиеся к длинной транзакции, и на основании этих записей отменить изменения в файлах данных.
30 авг 13, 17:49    [14777489]     Ответить | Цитировать Сообщить модератору
 Re: Запустил длинную транзакцию  [new]
Crimean
Member

Откуда:
Сообщений: 13147
результат будет одинаковый, но вот Cancel, посланный "из квери" и kill, посланный из другого процесса могут "доходить" до сервера по-разному. мне кажется, у kill больше шансов "дойти первым"
30 авг 13, 19:12    [14777784]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить