Чтобы получить список заблокированных таблиц в SQL Server, вы можете использовать различные методы. Вот несколько подходов:
-
Динамические представления управления (DMV): SQL Server предоставляет динамические представления, которые предоставляют ценную информацию о текущем состоянии базы данных. DMV sys.dm_tran_locks можно запросить для идентификации заблокированных таблиц.
Пример запроса:
SELECT OBJECT_NAME(p.object_id) AS TableName, resource_type AS ResourceType, request_session_id AS SessionID, request_mode AS LockMode FROM sys.dm_tran_locks AS l INNER JOIN sys.partitions AS p ON l.resource_associated_entity_id = p.hobt_id WHERE resource_type = 'OBJECT' -
Монитор активности: SQL Server Management Studio (SSMS) включает инструмент «Монитор активности», который предоставляет графический интерфейс для мониторинга различных аспектов базы данных, включая заблокированные таблицы. Его можно запустить, щелкнув правой кнопкой мыши сервер в SSMS, выбрав «Монитор активности» и перейдя в категорию «Блокировки».
-
Системная хранимая процедура sp_who2. Хранимую процедуру sp_who2 можно выполнить для получения информации о текущих сеансах базы данных, включая заблокированные таблицы. Выполните следующую команду в SQL Server Management Studio:
EXEC sp_who2 -
SQL Profiler: SQL Server Profiler — это мощный инструмент, позволяющий захватывать и анализировать события SQL Server, включая события, связанные с блокировкой. Вы можете настроить трассировку для регистрации событий блокировки, а затем проанализировать собранные данные для выявления заблокированных таблиц.