SQL - таблица, ожидающая коммит / откат после закрытия сессии

У меня есть большая таблица без каких-либо индексов, около 27,5 млн строк. Я попытался удалить около половины тех, кто использует BEGIN TRAN, Затем я попытался отменить запрос, но так как это заняло много времени, я решил просто закрыть Management Studio.
Теперь, когда я пытаюсь заглянуть в эту таблицу, она ничего не возвращает, просто продолжает работать.
Когда я бегу SELECT TOP 10 * FROM Tbl он просто выполняется, ничего не возвращая.
Но когда я бегу SELECT TOP 10 * FROM Tbl(NOLOCK) это возвращает 10 строк.
Это говорит мне, что он ждет на Rollback/Commit от моего BEGIN TRAN,
Я думал, что он автоматически откатится после закрытия сессии и Management Studio.
Как мне исправить эту проблему?

Благодарю.

2 ответа

Решение

Видимо, это сработало:

Прекращение / закрытие соединения с базой данных решит эту проблему. Чтобы закрыть соединение, вы можете попробовать завершить sqlserver.exe из диспетчера задач или монитора активности, если у вас есть Mac.

Выполнить SP: SP_LOCK

В результатах вы получите SPID, DBID, OBJID, INDID, TYPE, RESOURCE, MODE, STATUS
Теперь проверьте столбец состояния, если он показывает ожидание, то

убить этого SPID. Чтобы убить конкретного SPID Выполните SP: Kill 65 (где 65 - SPID)

Форум MSDN

Другие вопросы по тегам