Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Узнать заблокированный ресурс по коду блокировки  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 637
Приветствую!

Есть блокировка с указанием ресурса LCK_M_U (KEY: 11: 72057619188744192). Как узнать, что это за ресурс?
С блокировкой типа LCK_M_U (TAB: 11: 720576191) всё понятно, 11 = DB_ID(), 720576191 = object_id из sys.objects.

Собственно вопрос, что за идентификатор KEY 72057619188744192, и где его смотреть?
4 дек 13, 09:39    [15237063]     Ответить | Цитировать Сообщить модератору
 Re: Узнать заблокированный ресурс по коду блокировки  [new]
Glory
Member

Откуда:
Сообщений: 104751
KEY
Represents a row in an index.
HoBt ID. This value corresponds to sys.partitions.hobt_id.
4 дек 13, 10:06    [15237226]     Ответить | Цитировать Сообщить модератору
 Re: Узнать заблокированный ресурс по коду блокировки  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 637
Glory,

Спасибо, то что надо!
4 дек 13, 10:27    [15237339]     Ответить | Цитировать Сообщить модератору
 Re: Узнать заблокированный ресурс по коду блокировки  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 637
И, чтобы два раза не вставать, как по номеру страницы выйти на объект?
Пример блокировки LCK_M_U(PAG: 11: 1: 2037339)
4 дек 13, 11:15    [15237681]     Ответить | Цитировать Сообщить модератору
 Re: Узнать заблокированный ресурс по коду блокировки  [new]
Visibus
Member

Откуда:
Сообщений: 32
Пример блокировки LCK_M_U(PAG: 11: 1: 2037339)

dbcc traceon(3604);
dbcc page(11,1,2037339);

В полученном результате ищете строчку типа "Metadata: ObjectId = xxxxxxx".
По этому object_id = xxxxxxx определяете объект БД.
4 дек 13, 11:43    [15237907]     Ответить | Цитировать Сообщить модератору
 Re: Узнать заблокированный ресурс по коду блокировки  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6258
Oblom,

select distinct
  dtl.request_session_id [session_id], 
  so.object_id, 
  so.name [object_name],
  so.type_desc [object_type],
  dtl.resource_type as [lock_type],
  dtl.request_mode as [lock_mode],
  dtl.request_status
from sys.dm_tran_locks dtl
join sys.partitions sp on sp.hobt_id = dtl.resource_associated_entity_id
join sys.all_objects so on so.object_id = sp.object_id
where dtl.resource_database_id = db_id()
4 дек 13, 11:45    [15237916]     Ответить | Цитировать Сообщить модератору
 Re: Узнать заблокированный ресурс по коду блокировки  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 637
Visibus
Пример блокировки LCK_M_U(PAG: 11: 1: 2037339)

dbcc traceon(3604);
dbcc page(11,1,2037339);

В полученном результате ищете строчку типа "Metadata: ObjectId = xxxxxxx".
По этому object_id = xxxxxxx определяете объект БД.


Спасибо, помогло, нашел строку Metadata: ObjectId = 1514161256
Единственное, наверно надо добавить dbcc traceoff(3604);
4 дек 13, 12:03    [15238033]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить