SQL Tablockx -> rowlock #22072


#0 by vbuoc
hi, слыхал где-то, что если в хран.пр-ах. заменить Tablockx на rowlock - то проблема с блокировками будет практически решенаЭт чо правда что-ли??
#1 by Меланхоличный ворон
Правда, но неполная: если сделать только это, то проблемы только добавятся
#2 by Дяпти
А то! Все гениальное просто!
#3 by vbuoc
C чего бы это?
#4 by vbuoc
#5 by Дяпти
А вот давайте МуМу спросим:МуМу! А если у меня в конфе никаких последовательностей нету и движения документа зависят исключительно от данных самого документа - мне можно убрать tablockx holdlock и я решу все проблемы с блокировками не нажив других?
#6 by vbuoc
да причем тут последовательности?
#7 by МуМу
То 5. Зависит от конфы. В описанном случае проблем с грязным чтением не будет но почти однозначно будут деадлоки. Собственно говоря не раз уже проходил через такие конфигурации и видел к чему это приводило.Хотя и тут бывают исключение. Бухгалтерские конфигурации если работать в текущих периодах то этой проблемы подвержены меньше т.к. данные агрегируются только при работе задним числом - следовательно взаимных блокировок меньше.
#8 by vbuoc
не понимаю- ведь я всего лишь указываю скл чтобы тот блокировал тока строку таблицы а не ее саму
#9 by Дяпти
этого оказывается недостаточно.
#10 by Дяпти
Спасибо МуМу :-)
#11 by 2Green
МуМу, разъясните пожалуйста понятие "данные агрегируются"
#12 by МуМу
ЧТо 8. то бы понимать советую сначала на тему деадлоков почитать что это такое. Ну и на тему грязного чтения.
#13 by vbuoc
Удалить механизм блокировок можно путем изменения хранимых процедур, через которые 1С проверяют таблицы на блокировки. А точнее, удалить хинты на блокировку таблиц.Например, в хранимой процедуре _1 sp __1 SJOURN _ TLockX в конструкции select @i=1 from _1SJOURN(TABLOCKX HOLDLOCK) where 0=1 необходимо удалить TABLOCKX HOLDLOCK.Также необходимо удалить соответствующие хинты(подсказки блокировки) в остальных таблицах относящихся к документам. Если этого не сделать то будут возникать deadlock -и – взаимоблокировки транзакций на уровне SQL server .
#14 by МуМу
То 11.Под агрегацией подразумевается денормализация данных-в данном случае хранение в нескольких таблицах. Отдельно движения и отдельно остатки и корресподенции.
#15 by Меланхоличный ворон
Модер может напомнить Раздел 2, пункт 9 правил. Кроме того, в таких случаях в приличном обществе нужно указывать авторство.
#16 by МуМу
То 13. Ну а что?Все логично. Таким образом мы снимаем монопольные блокировки но блокировки от MSSQL остаются в любом случае. В случае агрегаций они являются конфликтным множеством на которых и могут потенциально возникать деадлоки.
#17 by Железяка
Напоминаю. Раздел 2 п.9 правил:"Не следует копировать в ветки материалы каких-то веб-страниц. Лучше просто дайте на них ссылку"
#18 by vbuoc
скюз ми но вроде давал: vbuoc4 - 16.12.2004 - 14:40
#19 by vbuoc
понял. Спасибо!
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С