Не вижу прогресса в откате SPID с KILL WITH STATUSONLY

У меня есть SPID на SQL 2005, который отображается в мониторе активности как режим "ROLLBACK" (потому что журнал транзакций заполнен, а не потому, что он был уничтожен вручную). Я пытался увидеть, сколько времени осталось откатиться с

KILL 115 WITH STATUSONLY

но он просто сказал: "Отчет о состоянии не может быть получен. Операция отката для идентификатора процесса 115 не выполняется".

Могу ли я безопасно выдать "KILL 115", чтобы увидеть состояние отката? Это действительно что- то делает для спида, который в данный момент находится в откате?

3 ответа

Решение

Похоже, вы можете убить SPID, который в данный момент находится в состоянии отката. Хотя я до сих пор не понимаю, что происходит, похоже, что, выполнив команду KILL, вы можете добиться прогресса, используя команду KILL WITH STATUSONLY.

Как указывает Пол, это довольно произвольно...

Нет, это ничего не делает. Вы не можете убить спида, который откатывается назад. Откат должен завершиться, в противном случае база данных будет несовместима с транзакциями и станет SUSPECT.

From BOL: KILL WITH STATUSONLY генерирует отчет, только если идентификатор сеанса или UOW в настоящее время откатывается из-за предыдущего оператора ID сеанса KILL |UOW.

В этом случае он откатился сам по себе, поэтому вы не сможете увидеть прогресс.

Надеюсь это поможет.

Попробуйте использовать приведенный ниже оператор, чтобы увидеть ход процесса отката.

      select session_id, percent_complete , last_wait_type , wait_resource, wait_time, wait_type  from sys.dm_exec_requests where status = ‘rollback’
Другие вопросы по тегам