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

Откуда: Вологда
Сообщений: 190
Здравствуйте!

В программе 1С на таблице _InfoRg1475 возникает таймаут. (В одном сеансе 1С запущена обработка данных этого регистра)
Во втором сеансе просто читаются данные и возникает таймаут.
Такое ощущение, что возникает эскалация блокировки =>таймаут в сеансе 2;

Хотелось бы подтвердить эту теорию, для этого хотел бы:

1. Посмотреть перед обработкой данных блокировки этой таблицы (S,X,U... - на какие записи наложены). Посмотреть эскалацию на эту таблицу;
2. После запуска обработки сеанса 1 мониторить изменение заблокированных записей. Посмотреть и проанализировать эскалацию блокировок по таблице;
3. Если возникает эскалация, то понять по какой причине (По количеству заблокированных объектов или по памяти)

Я совсем новичок в этом деле. Подскажите как это сделать ?
Большое спасибо за внимание.
10 июн 14, 08:56    [16146558]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки на таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Событие Lock:Escalation можно отследить в Профайлере
10 июн 14, 09:48    [16146788]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки на таблице  [new]
Alex_MA
Member

Откуда: Вологда
Сообщений: 190
выполняю следующий запрос:

SELECT 
	DB_NAME(resource_database_id) AS [Database],
	request_exec_context_id,
	resource_associated_entity_id,
	request_owner_id,
	resource_description,
	*
FROM sys.dm_tran_locks sl
WHERE request_session_id > 50 AND resource_database_id = DB_ID() AND request_session_id <> @@SPID
ORDER BY
	request_session_id


Получаю определенный результат:

Картинка с другого сайта.

Интересуют вот эти поля:
request_exec_context_id - Идентификатор контекста выполнения процесса, которому в данный момент принадлежит запрос.
resource_associated_entity_id - Идентификатор сущности в базе данных, с которой связан ресурс. Это может быть идентификатор объекта, идентификатор Hobt или идентификатор единицы распределения в зависимости от типа ресурса.
request_owner_id - Если владельцем запроса является транзакция, это значение содержит идентификатор транзакции.
resource_description - Описание ресурса, содержащее только те данные, которые недоступны из других столбцов источника.

В результате запроса предоставлены идентификаторами, можно из них получить что то понятно ?
Ну например имя таблицы или что то более осмысленное ?

Спасибо.
10 июн 14, 10:11    [16146897]     Ответить | Цитировать Сообщить модератору
 Re: Блокировки на таблице  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Alex_MA,

ну так в той же статье и написано, что означает resource_associated_entity_id в зависимости от каждого типа ресурса.
11 июн 14, 11:16    [16153150]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить