|
Нужна ли блокировка для менеджера записи регистра сведений? |
☑ |
0
xaozai
04.05.17
✎
19:57
|
Всего мнений: 3
Регистр непериодический, независимый. Реж. блокировки управляемый.
Нужна ли блокировка для менеджера записи (см. код ниже)? Не может ли менеджер записи без блокировки заблокировать всю таблицу или более широкий (чем одна запись) набор записей по измерениям?
НачатьТранзакцию(РежимУправленияБлокировкойДанных.Управляемый);
МенеджерЗаписи = РегистрыСведений.КакойТоРегистр.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Измерение1 = Контрагент;
МенеджерЗаписи.Измерение2 = Договор;
МенеджерЗаписи.Реквизит1 = "Какой-то комментарий";
Блокировка = Новый БлокировкаДанных;//нужна ли эта блокировка?
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КакойТоРегистр");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Измерение1", МенеджерЗаписи.Измерение1);
ЭлементБлокировки.УстановитьЗначение("Измерение2", МенеджерЗаписи.Измерение2);
Блокировка.Заблокировать();
МенеджерЗаписи.Записать(Истина);
ЗафиксироватьТранзакцию();
|
|
1
Windyhead
04.05.17
✎
20:24
|
Нет конечно
Нет |
|
2
Cyberhawk
04.05.17
✎
20:53
|
Менеджер записи всегда работает только с одной записью
Нет |
|
3
Fragster
гуру
04.05.17
✎
21:01
|
кто-нибудь кроме меня убирал галку "основной отбор" с измерений?
|
|
4
Maniac
04.05.17
✎
21:07
|
В регистр сведений не периодиечский и тп можно набором по 100 000 записывать за 10-20 секунд без всяких транзакций
|
|
5
xaozai
04.05.17
✎
21:08
|
(4) У меня конфликты блокировок возникают, даже если в наборе записей всего две записи...
|
|
6
xaozai
04.05.17
✎
21:09
|
(3) Сегодня, кстати, снял эти галки. Надеюсь скажется положительно.
|
|
7
Fragster
гуру
04.05.17
✎
21:17
|
(6) это сказывается на записи больших наборов и обмене
|
|
8
Fragster
гуру
04.05.17
✎
21:17
|
по сабжу -
Нет |
|
9
Cyberhawk
04.05.17
✎
23:31
|
(5) Это, видимо, скуль оптимизирует: до 1500 записей он блокирует либо всю страницу, либо всю таблицу.
А (4) не слушай, к блокировкам его "можно" отношения не имеет
|
|
10
Franchiser
04.05.17
✎
23:43
|
По-моему это называется эскалация блокировок. Что говорит profiler?
|
|
11
Cyberhawk
04.05.17
✎
23:51
|
(10) Ну вообще под эскалацией обычно имеют в виду когда "свыше 20000", а про ситуацию "до 1500" забывают
|
|
12
Franchiser
05.05.17
✎
00:03
|
Ну всю таблицу блокировать не должен при управляемых блокировках, постраничная блокировка может быть
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший