У нас есть транзакция, которая выполняется более 5 часов. У нас заканчивается свободное место на диске. Сессия была убита, но она все еще ждет IO_COMPLETION. На самом деле тип ожидания просто изменился на PAGEIOLATCH_EX. Как я могу прекратить приостановленную транзакцию SQL Server? Я не беспокоюсь о потере данных, поскольку все они могут быть заполнены.
session_id: 54
STATUS: suspended
blocked by: 0
wait_type: PAGEIOLATCH_EX
Elapsed Time (in Sec): 19750.420000
open_transaction_count: 2
sql-server-2012
transaction
kill
Тарзан
источник
источник
KILL 54 WITH STATUSONLY
чтобы узнать, сколько времени потребуется для отката.KILL .. WITH STATUSONLY
не точен, и я понимаю вашу точку зрения. Ты можешь попробоватьAlter database .. set OFFLINE or single_User WITH ROLLBACK IMMEDIATE
?Ответы:
В следующий раз, когда это произойдет, запустите
sp_WhoIsActive
( загрузка / документация ) и посмотрите, кто что запускает, и просмотрите логику. Проверьте, можно ли оптимизировать TSQL для ускорения работы или, возможно, разделить его на более мелкие транзакции.У меня были случаи, когда журнал транзакций с ошибочным запросом составителями отчетов, загрузчиками данных и т. Д. Увеличивал журнал транзакций больше, чем размер файла данных, и обычно это плохо выполняемый, плохо написанный запрос, который не был оптимизирован или разбит на части. в меньшие транзакции, чтобы вернуть свободное пространство после завершения транзакции -
SIMPLE
кстати, это было и в базе данных модели восстановления -FULL
базы данных модели восстановления должны иметь резервные копии журнала транзакций, чтобы можно было повторно использовать пространство журнала транзакций зафиксированных транзакций.Основная проблема, скорее всего, заключается в запросе, поэтому определение того, кто что делает, и обращение к ним и сообщение о проблеме с вашими выводами заставит их исправить свою логику, чтобы не занимать место на диске сервера для этого раздела диска - надеюсь, это не ваша логика, но если это так, посмотрите на оптимизацию логики для настройки производительности.
источник