![]() |
|
SQL Tablockx -> rowlock Ø |
☑ | ||
---|---|---|---|---|
0
vbuoc
16.12.04
✎
14:35
|
hi, слыхал где-то, что если в хран.пр-ах. заменить Tablockx на rowlock - то проблема с блокировками будет практически решена
Эт чо правда что-ли?? |
|||
1
Меланхоличный ворон
16.12.04
✎
14:36
|
Правда, но неполная: если сделать только это, то проблемы только добавятся
|
|||
2
Дяпти
16.12.04
✎
14:37
|
А то! Все гениальное просто!
|
|||
3
vbuoc
16.12.04
✎
14:38
|
(2) C чего бы это?
|
|||
4
vbuoc
16.12.04
✎
14:40
|
||||
5
Дяпти
16.12.04
✎
14:41
|
А вот давайте МуМу спросим:
МуМу! А если у меня в конфе никаких последовательностей нету и движения документа зависят исключительно от данных самого документа - мне можно убрать tablockx holdlock и я решу все проблемы с блокировками не нажив других? |
|||
6
vbuoc
16.12.04
✎
14:44
|
да причем тут последовательности?
|
|||
7
МуМу
16.12.04
✎
14:45
|
То 5. Зависит от конфы. В описанном случае проблем с грязным чтением не будет но почти однозначно будут деадлоки. Собственно говоря не раз уже проходил через такие конфигурации и видел к чему это приводило.Хотя и тут бывают исключение. Бухгалтерские конфигурации если работать в текущих периодах то этой проблемы подвержены меньше т.к. данные агрегируются только при работе задним числом - следовательно взаимных блокировок меньше.
|
|||
8
vbuoc
16.12.04
✎
14:47
|
не понимаю- ведь я всего лишь указываю скл чтобы тот блокировал тока строку таблицы а не ее саму
|
|||
9
Дяпти
16.12.04
✎
14:49
|
(8) этого оказывается недостаточно.
|
|||
10
Дяпти
16.12.04
✎
14:51
|
(7) Спасибо МуМу :-)
|
|||
11
2Green
16.12.04
✎
14:54
|
МуМу, разъясните пожалуйста понятие "данные агрегируются"
|
|||
12
МуМу
16.12.04
✎
14:55
|
ЧТо 8. то бы понимать советую сначала на тему деадлоков почитать что это такое. Ну и на тему грязного чтения.
|
|||
13
vbuoc
16.12.04
✎
15:04
|
Удалить механизм блокировок можно путем изменения хранимых процедур, через которые 1С проверяют таблицы на блокировки. А точнее, удалить хинты на блокировку таблиц.
Например, в хранимой процедуре _1 sp __1 SJOURN _ TLockX в конструкции select @i=1 from _1SJOURN(TABLOCKX HOLDLOCK) where 0=1 необходимо удалить TABLOCKX HOLDLOCK. Также необходимо удалить соответствующие хинты(подсказки блокировки) в остальных таблицах относящихся к документам. Если этого не сделать то будут возникать deadlock -и – взаимоблокировки транзакций на уровне SQL server . |
|||
14
МуМу
16.12.04
✎
15:05
|
То 11.
Под агрегацией подразумевается денормализация данных-в данном случае хранение в нескольких таблицах. Отдельно движения и отдельно остатки и корресподенции. |
|||
15
Меланхоличный ворон
16.12.04
✎
15:07
|
(13) Модер может напомнить Раздел 2, пункт 9 правил. Кроме того, в таких случаях в приличном обществе нужно указывать авторство.
|
|||
16
МуМу
16.12.04
✎
15:09
|
То 13. Ну а что?Все логично. Таким образом мы снимаем монопольные блокировки но блокировки от MSSQL остаются в любом случае. В случае агрегаций они являются конфликтным множеством на которых и могут потенциально возникать деадлоки.
|
|||
17
Железяка
16.12.04
✎
15:10
|
Напоминаю. Раздел 2 п.9 правил:"Не следует копировать в ветки материалы каких-то веб-страниц. Лучше просто дайте на них ссылку"
|
|||
18
vbuoc
16.12.04
✎
15:14
|
скюз ми но вроде давал: vbuoc
4 - 16.12.2004 - 14:40 http://www.softpoint.ru/article.php?id=1 |
|||
19
vbuoc
16.12.04
✎
15:16
|
(16) понял. Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |