Таблица SQL 2008 заблокирована - не могу понять почему - PullRequest
0 голосов
/ 15 апреля 2010

У меня две базы данных на одном сервере SQL 2008. База данных 1, кажется, вызывает блокировку таблицы в базе данных 2. В базе данных 1 не выполняется никаких запросов, которые могли бы повлиять на базу данных 2.

Это нормальное поведение?

Когда я просматриваю запущенные запросы с помощью этой команды

SELECT sqltext.TEXT,
req.session_id,
req.status,
req.command,
req.cpu_time,
req.total_elapsed_time/1000 [seconds]
FROM sys.dm_exec_requests req
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext

это говорит мне об этом и говорит, что команда в базе данных 2 приостановлена.

Я немного растерялся. На какие вещи следует обратить внимание, чтобы понять, почему таблица в базе данных 2 заблокирована?

1 Ответ

1 голос
/ 15 апреля 2010

Запросы, выполняемые не имеют значения - блокировка может быть из запроса, выполненного DID, и соединение / транзакция все еще действительны (т.е. открытая транзакция, не подтверждена / откатана), в этом случае блокировка остается на месте.

Вы в основном должны идентифицировать:

  • Соединение, которое блокирует таблицу.
  • Цепочка команд запускается внутри соединения.

Блокировки происходят от операций, выполняемых БД - поэтому, если вы не получили критическую ошибку низкого уровня (ОЧЕНЬ маловероятно с такой ошибкой), что-то вызвало генерацию блокировки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...