У меня есть работа, которая обычно занимает около 2 часов. Сегодня утром он еще работал на 5 часах и я решил его убить. Он уже довольно давно находится в статусе «УБИТ / ОТКАТ». Когда я снова запускаю команду KILL, чтобы получить статус отката, я получаю следующее:
SPID 84: выполняется откат транзакции. Предполагаемое завершение отката: 0%. Расчетное оставшееся время: 0 секунд.
Могу ли я повысить приоритет или сказать SQL Server «поторопиться»? :)
Обновить:
Или есть способ сказать: «Меня не волнует состояние стола. Просто уходи».
Не за что.
Один из вариантов - остановить SQL Server, переместить файлы MDF и LDF, запустить SQL Server, удалить подозрительную БД, повторно подключить файл MDF и надеяться, что ваша БД по-прежнему работает.
Или восстановить.
Я не шучу: ACID вызывает откат и не допускает повреждение таблицы без вмешательства извне.
Есть вероятность, что он может быть заблокирован по другой причине, но обычно это откат транзакции. Перезапуск SQL Server мог помогите в этом случае, но не плачьте, если что-то пойдет не так :-)
Если это продакшн, то подождите или удалите / восстановите. Вы не можете сказать: «Меня не волнует состояние стола. Просто уходите». в производстве...
До SQL Server 2008 я не знаю ни одного возможного решения. Начиная с SQL Server 2008 существует Регулятор ресурсов который позволяет вам указать рабочую нагрузку и используемые ресурсы. Я им еще не пользовался, поэтому подробностей рассказать не могу.