Есть БД в которую записываются логи, потребовалось проанализировать логи за промежуток времени.
Для более быстрой и удобной работы решил запросом вида Select...into скопировать записи за нужный промежуток времени в отдельную таблицу.
Запрос этот работал слишком долго, и спустя 9 часов было решено его отменить. Но просто так отменить запрос не выходит - после KILL он висит в статусе Suspended и KILLED/ROLLBACK.
Никакой rollback мне не нужен, нужно просто убить работу этой команды.
Как это сделать?
не надо ничего делать. И не надо его пробовать перезагрузить. В этот момент база занимается безопасным освобождением ресурсов, откатом транзакций и другой неведомой гадостью. Не так чихнете и привет неконсистентные данные в неизвестной точке + битые таблицы
Так ведь нужные таблицы не изменились. Я просто создал новую и в неё попробовал выгрузить часть данных. Её просто можно удалить, без всяких откатов итд
Андрей, но анализатор памяти с вами не согласен он работает по определенной логике. Скорее он что-то уже что-то внёс, но транзакция не завершена, данные в буфере.
sp_who2 - узнаешь id процесса, 75 например. потом kill 75. Иначе транзакция у тебя будет откатываться до посинения, а именно - ровно столько же времени, сколько был запрос.
И я бы не парился в данном случае за целостность данных вообще никак.