Имя: Пароль:
1C
 
Взаимосвязь управляемых блокировок 1С и эскалации блокировок СУБД ☑
0 yabes
 
27.04.20
✎
13:46
Подскажите, пожалуйста, нигде не смог найти ответа на свой вопрос. Может ли установка управляемых блокировок 1с повлиять на эскалацию блокировок СУБД? У меня при записи большого набора записей возникает эскалация блокировок СУБД. Существует мнение, что если установить по измерениям управляемую блокировку 1С, это поможет убрать эскалацию блокировок СУБД. У меня избавиться от эскалации таким образом не получилось и статью, в которой бы говорилось о такой взаимосвязи я тоже не нашел. Так можно ли избавится от эскалации блокировок СУБД с помощью управляемых блокировок 1С или нет?)
1 fisher
 
27.04.20
✎
13:51
Можно. Или нельзя. Зависит от причины эскалации.
Прямой взаимосвязи нет никакой.
2 fisher
 
27.04.20
✎
13:55
Вообще, если запись одним набором, то непонятно как помогут управляемые блокировки. СУБД видит тонны блокировок строк и вполне естественно делает эскалацию, чтобы оптимизировать блокировки. А нет вариантов более гранулярно писать?
3 fisher
 
27.04.20
✎
13:59
Возможно, исходное мнение имело в виду, что при параллельной записи можно делать грануляцию по измерениям и использование управляемых блокировок при этом уменьшит количество блокировок СУБД в конфликтных ситуациях.
4 fisher
 
27.04.20
✎
14:00
Потому что конфликт будет разрулен еще на уровне управляемых блокировок, не доводя его до СУБД.
5 fisher
 
27.04.20
✎
14:02
Но если алгоритм параллелизации исключает конфликты, то что в лоб, что по лбу.
6 H A D G E H O G s
 
27.04.20
✎
14:24
(0) Нельзя.
Юзайте ключ трассировки 1211
https://its.1c.ru/db/metod8dev#content:5946:hdoc
7 palsergeich
 
27.04.20
✎
14:30
(0) Нет это не так работает.
8 palsergeich
 
27.04.20
✎
14:33
Грубо из коробки у MSSQL триггер эскаляции 5000, у управляемой блокировки 100000
Если ты пишешь разом более 5000 записей то или юзай ключи трассировки или воспринимай это как неизбежное
9 palsergeich
 
27.04.20
✎
14:33
10 H A D G E H O G s
 
27.04.20
✎
14:40
(8) Откуда дровишки про 100000 строк от сервера 1С?
11 H A D G E H O G s
 
27.04.20
✎
14:41
От сервера 1С есть еще охеренные неявные блокировки при записи НабораЗаписей РС в режиме перезаписи. Но там думать надо, не копать.
12 yabes
 
27.04.20
✎
16:00
Т.е. получается, что если требуется провести документ, который записывает в регистр большой набор записей (> 10 000 строк), то нет никакой возможности избежать эскалации блокировок СУБД, кроме как отключить эскалацию MS SQL для таблицы? В нашем случае мы мучаемся с сохранением документов “Форма ввода бюджета”
13 H A D G E H O G s
 
27.04.20
✎
16:22
(12) Включите флаг 1211 и перезагрузите сервак. Ну написано же.
14 yabes
 
27.04.20
✎
16:27
(13) Так я и спрашиваю в сообщении (12), если другая возможность избавиться от эскалации блокировок СУБД, кроме как отключить эскалацию MS SQL для конкретной таблицы или всего сервера (с помощью флага трассировки 1211)?
15 Вафель
 
27.04.20
✎
16:28
ну можно еще мин размер увеличить
16 fisher
 
27.04.20
✎
16:31
(12) И что они блокируют? Или вы их параллельно проводите?
17 H A D G E H O G s
 
27.04.20
✎
16:38
(14) Можно для таблицы SQL через Alter Table
поставить
LOCK_ESCALATION =disable

Но зачем?
18 yabes
 
27.04.20
✎
16:39
(16) Возникает эскалация блокировок СУБД по регистру накопления, в котором хранятся данные по бюджету. В такие моменты другие документы, которые делают движение по этому регистру периодически вылетают с ошибками превышения ожидания на блокировках
19 yabes
 
27.04.20
✎
16:40
(17) "Но зачем?" - вы имеете в виду зачем устанавливать на таблицу если можно установить на весь сервер или зачем вообще это нужно?
20 fisher
 
27.04.20
✎
16:53
(18) Пытаюсь сообразить, какие еще документы могут двигать бюджет.
21 H A D G E H O G s
 
27.04.20
✎
16:55
(19) Да, если можно установить на весь сервер.
По опыту - никакого особого повышенного потребления памяти или CPU это не вызывает
22 yabes
 
27.04.20
✎
16:58
(20) Хотя бы другие Формы ввода бюджета, например
23 fisher
 
27.04.20
✎
17:13
(22) Вот я и спрашивал - вы их параллельно проводите? Тогда ясно. Неясно только почему такая огромная детализация, если существует еще и дополнительная гранулярность (раз параллельно проводить надо).
Если это какие-то распределения, то их можно попробовать делать отложенно. Таблицы не любят, когда в них пытаются параллельно писать громадными порциями :) Когда это реально надо - там специально заморачиваются. Секционирование таблиц делают или еще чего похлеще.