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

Откуда:
Сообщений: 13
Есть 1С 8.1 Конфа Бухгалтерия, документ Закрытия месяца. Задача сделать возможным параллельное проведение документов по нескольким организациям. Начинаю исследовать блокировки.

Интересует одна непонятная блокировка на KEY. При проведении 1-год документа (самое начало транзакции) платформа вешает 2 "X" Блокировки на ключи, типа:

Object;resource_type;resource_subtype;resource_description;request_mode;request_type; request_status
------------------------------------------------------------
_Document184;KEY;;(2b01c716fc56);X;LOCK;GRANT
_DocumentJournal7084;KEY;;(16027d2bef55);X;LOCK;GRANT

Первый же запрос (адаптировал, убрал лишние фильтры по периоду и т.д.):
BEGIN TRAN
select *
from dbo._Document184(holdlock)
where _Document184._Fld3653RRef = 0xBF89402D57E9777844DB55748741DD9A -- фильтр по организации
(Фильтр по организации, отличной от той, что указана в 1-ом документе. Запрос изначально проверял наличие других документов закрытия месяца в периоде по этой же организации)

пытается вешать блокировку типа

_Document184;KEY;;(2b01c716fc56);RangeS-S;LOCK;WAIT
ИЛИ (В оригинальном запросе, со всеми фильтрами)
_Document184;KEY;;(2b01c716fc56);S;LOCK;WAIT

Насколько я понимаю это блокировка на диапазон кластерного ключа, как определить что подразумевается по хэш функцией (2b01c716fc56)? По идеи документа разных организаций не должны друг другу мешать, что это? Root-овый элемент индекса?
27 авг 09, 11:38    [7585611]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить