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

Откуда: мск
Сообщений: 1833
Приветствую

Подскажите, каким образом можно объяснить, что после нажатия в студии кнопки ssms "cancel executing query",
студия переходит в состояние "cancelling query", но сам процесс остается в активном состоянии.
И даже после отправки kill, переход процесса в состояние Killed/rollback происходит совсем не сразу.
Я говорю даже не про завершение отката, а про начальную реакцию сервера.
Выполнена команда на перестроение индекса, отмена была нажата практически сразу, потом kill несколько раз,
по факту процесс продолжал выделять место в базе с таблицей еще минут 20 и только потом процесс сменил состояние и пошёл откат.
3 сен 19, 20:36    [21962851]     Ответить | Цитировать Сообщить модератору
 Re: kill  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36381
Бывают с этим проблемы. Где-то кто-то напрограммил.
3 сен 19, 20:48    [21962857]     Ответить | Цитировать Сообщить модератору
 Re: kill / cancel query  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6526
Shakill,
Cancel бросает exception который выполнится следующей командой и будет или нет rollback вопрос сеанса. Kill начинает rollback сразу.
3 сен 19, 21:30    [21962873]     Ответить | Цитировать Сообщить модератору
 Re: kill / cancel query  [new]
Владислав Колосов
Member

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

если вставка/изменение, то откатывается транзакция.
4 сен 19, 13:25    [21963371]     Ответить | Цитировать Сообщить модератору
 Re: kill / cancel query  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 3954
Shakill
Приветствую

Подскажите, каким образом можно объяснить, что после нажатия в студии кнопки ssms "cancel executing query",
студия переходит в состояние "cancelling query", но сам процесс остается в активном состоянии.
И даже после отправки kill, переход процесса в состояние Killed/rollback происходит совсем не сразу.
Я говорю даже не про завершение отката, а про начальную реакцию сервера.
Выполнена команда на перестроение индекса, отмена была нажата практически сразу, потом kill несколько раз,
по факту процесс продолжал выделять место в базе с таблицей еще минут 20 и только потом процесс сменил состояние и пошёл откат.


Если запрос был в полете некоторое время, то он сделал определенные изменение и их надо откатить. На это может уйти время. И это время может измеряться и минутами и часами. И даже время отката может быть больше изначального времени работы запроса.
6 сен 19, 16:14    [21965449]     Ответить | Цитировать Сообщить модератору
 Re: kill / cancel query  [new]
Shakill
Member

Откуда: мск
Сообщений: 1833
a_voronin
Если запрос был в полете некоторое время, то он сделал определенные изменение и их надо откатить. На это может уйти время. И это время может измеряться и минутами и часами. И даже время отката может быть больше изначального времени работы запроса.

про сам откат понятно, вопрос почему после отмены и kill процесс продолжил выделение места под ребилд и ещё довольно долго был виден через sp_whoisactive в состоянии выполнения, а не сразу получил статус killed/rollback
может как-то повлиял alwayson, непонятно
6 сен 19, 16:41    [21965479]     Ответить | Цитировать Сообщить модератору
 Re: kill / cancel query  [new]
Владислав Колосов
Member

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

надо смотреть KILL WITH STATUSONLY за состоянием.
6 сен 19, 18:15    [21965586]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить