Имя: Пароль:
1C
1С v8
Вопрос про блокировки данных
,
0 Alex_MA
 
14.10.11
15:34
Всем доброго дня!

     Если для всей конфигурации установлен режим блокирови данных равный управляемый, то все объекты уже используют режим управляемый, в независимости от свойства объекта "Режим блокировок"?
1 PR
 
14.10.11
15:37
Да
2 Alex_MA
 
14.10.11
15:47
У меня конфигурация стоит в управляемом режиме блокировок - (READ COMMITED - другие транзакции могут изменять данные если они даже прочитаны). Почему нет || - не понимаю.
Ездил на курсы, там сказали, как только поставите в управляемый - || возрастет - у нас не возросла :(
Я даже не писал описывал блокировки - ибо мне не важны отрицательные остатки.
3 Axel2009
 
14.10.11
15:49
в чем нет ||? опиши ситуацию подробней
4 Alex_MA
 
14.10.11
15:54
(3)Проводить начинаю из || сеансов реализацию товаров услуг -> все, сплошные блокировки. встреч. и deadlock-и
(3)Вопрос: Если у конфигурации поставить режим управления блокировками данных равный управляемым и больше ничего не делать - то это как я понимаю максимальная параллельность. - Так ведь ?
Все что мы пишем Новый БлокировкаДанных - это только уменьшение параллельности.
5 Axel2009
 
14.10.11
15:59
(4) смотри есть ли у скуль сервака настройки по транзакциям по умолчанию в момент соединения. в режиме управляемых блокировок никакие хинты не пишутся в выборках, они берутся те что установлены для коннекта. вроде 1с не ставит жестко , поэтому искать в настройках сервака.. у базульки таких свойств нетю
6 Господин ПЖ
 
14.10.11
16:01
если приходы лупите в один день - без блокировок не обойтись
7 Alex_MA
 
14.10.11
16:27
У нас где то с 50 человек в одно и то же время разносят документы расчетов и проводят по регистрам.
8 Alex_MA
 
15.10.11
08:54
Конфигурация: Режим совместимости = "Версия 8.2.13"
Это каким либо образом влияет на блокировки ?
9 Alex_MA
 
15.10.11
12:19
1.БД1: Есть типовая УПП переведенная на управляемые блокировки (Блокировки нигде в коде не описывались при помощи Новый БлокировкаДанных)
2.БД2: Есть та же самая УПП, но на кое какие регистры устанавливаются блокировки в коде Новый БлокировкаДанных.

Эксперимент:
В 1-ю БД запустим допустим 100 пользователей и во 2-ю БД запустим 100 пользователей - и они выполняют одну и ту же работу.

Вопрос: Где параллельность работы пользователей будет выше ?
10 Alex_MA
 
16.10.11
17:37
ап
11 Alex_MA
 
16.10.11
20:06
Почему возникают deadlock-и при управляемом режиме блокировок всей конфигурации ?
Ведь уровень изоляции READ COMMITED. В коде блокировки нигде не описывал! Если текущая транзакция читает какие то данные - то другая может их изменить! Получается это блокировки на уровне СУБД ?

34 пост верен ?
v8: Блокировка данных
12 Reaper_1c
 
16.10.11
20:32
Вообще-то любое движение по регистру приводит к пересчету итогов этого регистра. А пересчет, ясен пень, блокирует регистр по пересчитываемому набору измерений. Разные документы в этой ситуации могут вполне блокировать конкурирующие данные и вызывать deadlock.
13 Alex_MA
 
16.10.11
21:06
(12)Еще вопрос,  если кодом ничего накладывать на регистр - одинесина там ничего блокировать не будет ? - Так. Здесь блокировка на уровне СУБД.
14 Злопчинский
 
16.10.11
21:09
> Вообще-то любое движение по регистру приводит к пересчету итогов этого регистра.
- оба на.. стопудово?
т.е. если много-много данных и изменили где-нить далеко - начнут шарашитьяс итоги и все будут ждать..? бо итоги пересчитываются не так уж и быстро...?
15 Reaper_1c
 
16.10.11
21:15
(14) Ну не все - блокировка устанавливается на уровне записей для комбинаций значений измерений, по которым были движения. Для тюнинга  этих процессов есть возможность отключения автоматического расчета итогов при записи движений и механизм разделения итогов. Их и надо курить.
16 Alex_MA
 
16.10.11
21:21
(15)по (9) БД1 будет быстрее работать ?
17 Злопчинский
 
16.10.11
21:23
куда устанавливается блокировка - сейчас мне не так интересно...
я про то, что при изменении движени я по регистру (перепровели документ, например с новыми данными) - пересчитываются итоги этого регистра... - но это же может быть офигенно долгий процесс пересчета итогов регистра... или нет? или я чего-то не понимаю..?
.
вот например расчет итогов при переходе на новый месяц - м.б. достаточно длительным.. и что - если сзади изменили движеняи по регистру - пересчитываются ВСЕ ИТОГИ по этому набору измерений... н а все начала месяцев...? или я не втыкаю..?
18 Alex_MA
 
16.10.11
21:23
(15)разделение итогов логично применять, если записываемые в регистр данные не были заблокированы.
19 Alex_MA
 
16.10.11
21:25
Если у меня стоит режим управления блокировкой данных = управляемый, то я думаю мне поможет режим разделения итогов. Ведь данные которые будут "сбрасываться" в регистр не будут заблокированными.
20 Reaper_1c
 
16.10.11
21:30
(16) По (9) старая УПП станет на дедлоках. А новые уже используют управляемые блокировки из коробки.
(17) Не понимаешь. Клюшки так же работали - происходит пересчет и блокировка только по тем комбинациям измерений, по которым произошло движение, а не полный пересчет, который запускается при начале месяца.
(19) Ты русский языка понимать? Блокировка устанавливается на регистр при пересчете его итогов. При включении разделения - область блокировки ограничивается еще и сплиттером, что позволяет писать движения по одинаковым комбинациям измерений параллельно благодаря размножению записей в таблице итогов. Но включение разделения - это риск создания дедлоков на регистрах с контролем остатков. В любом случае волшебной таблетки не существует.
21 Злопчинский
 
16.10.11
21:35
(20) ок, понятно что не полный пересчет итогов... а то курили бы...
в принципе пересчет итогов происходит-то в этом случае быстро... все тормоза в клюшках были при расчете временных итогов...
22 Alex_MA
 
16.10.11
21:40
(20)dedlock и связанные с пересчетом итогов, так? Как отключить автоматический пересчет итогов ?
те, что новые из коробки никак не решают проблем параллельности. У нас один склад и одна номенклатура и когда начинаю разносить в реализации кредиторку, а потом проводить - все, работа встает.
23 Reaper_1c
 
16.10.11
21:44
(22) А ты понимаешь, что произойдет при отключении автоматического пересчета итогов? Точно?
24 Alex_MA
 
16.10.11
21:48
(23)конечно понимаю, мне это не критично. Хочу чтобы пользователи работали, а то с этим большая проблема
25 Alex_MA
 
16.10.11
21:50
При чтении данных в транзакции (Управляемый режим) - разделяемая блокировка ведь не устанавливается ?
26 Reaper_1c
 
16.10.11
21:51
(24) Т.е. отчеты не имеющие ничего общего с реальностью тебя не пугают? Ну-ну...
(25) Не помню.
27 Alex_MA
 
16.10.11
21:54
(26)не пугают.
Если все таки раздел. блокировка устанавливается - тогда от сюда deadlock тоже может происходить.
28 Reaper_1c
 
16.10.11
21:59
(27) В управлении итогами. Будешь искать работу - ник поменяй.
29 Alex_MA
 
16.10.11
22:03
(28)Мне остатки не важны, у меня в начале месяца остаток товара заносится в огромном количестве оприходованием, а потом мы его списываем. По факту под конец месяца делаем поступление товаров услуг равное фактически отпущенному. Такова у нас специфика работы.
30 Alex_MA
 
16.10.11
22:04
(28)поверь, такое тоже бывает :)
31 Злопчинский
 
16.10.11
22:04
> когда начинаю разносить в реализации кредиторку, а потом проводить - все, работа встает.
....сорри за вопрос неграмотного в 8-ке.. - а что именно встает?...
если один склад и одна номенклатура - то получается при пересчете итогов блокируется практически все... - но пересчет итогов должен все равно пройти быстро...? затык в чем..?
32 Alex_MA
 
16.10.11
22:06
(31)встает работа пользователей. Представляешь одновременное проведение документов 50 пользователей по одной номенклатуре и одному складу. Не знаю как вырулить в данной ситуации
33 Alex_MA
 
16.10.11
22:07
(31)поменять регламент работы пользователей предлагать не надо
34 Злопчинский
 
16.10.11
23:25
(32) не.. конкретно интересно.. что могут 50 пользователей одновременно делать с 1 складом и 1 номенклатурой..? при таком обилии номенклатур-складов пересчет итогов должен быть быстрым и практически малозаметным для пользователей...
.
что то у вас в консерватории не то..?
35 Reaper_1c
 
16.10.11
23:37
Элементарно - в документе расхода сначала делается движение по взаиморасчетам, потом по учету состояний расходов для УСН. В документе оплаты - сначала происходит движение по состояниям расходов, потом двигаются взаиморасчеты. Проведение расхода блокирует взаиморасчеты, проведение оплаты - блокирует состояние расходов. Вот они и встретились, два одиночества, образовали дедлок. В типовых такого конечно нет, но принцип я думаю понятен...
36 Alex_MA
 
17.10.11
08:08
(35)таких блокировок может и не быть, если при чтении в транзакции в упр. режиме не накладывается разделяемая блокировка
37 Alex_MA
 
17.10.11
08:21
Режим управления блокировками = Управляемый, по всем регистрам установлено разделение итогов.
Реализации по разным договорам: http://gyazo.com/e6d1b00119a139d6ff28d5285b9151f8

Как отключить автоматический расчет итогов при проведении ?
38 Alex_MA
 
17.10.11
08:37
Подскажите накладывается ли разделяемая блокировка при чтении данных в транзакции при управляемых блокировках?
39 Reaper_1c
 
17.10.11
08:52
(38) Судя по тексту - у тебя таки типовая. Не нужно тебе итоги отключать - просто откажись от списания партий при проведении документов.
40 Alex_MA
 
17.10.11
09:00
(39)уже отключил и все четко проводится
41 Alex_MA
 
17.10.11
09:02
(39)кстати, ставил точку останова в ОбщийМодуль.УстановитьУправляемуюБлокировку() - в коде описана блокировка при проведении партий, но это не помогает.

И еще волнует таки последний вопрос из (38)
42 Vetal_978
 
17.10.11
09:03
(38) Read commited в упр. режиме.
43 Alex_MA
 
17.10.11
09:09
(42) я это знаю. Это означает что если транзакция начала изменять данные, то другая транзакция не сможет ни прочитать ни изменить, пока наша транзакция не закончит свое действие. Затем искл. блокировка будет снята и другие транзакции могут изменять эти данные - не дожидаясь окончания первой транзакции.
44 Alex_MA
 
17.10.11
09:11
(43)это не отвечает на вопрос - будет ли установлена разделяемая блокировка на чтение данных
45 Axel2009
 
17.10.11
09:25
(44) если тебе не нужны онлайн остатки, переделай все на фоновое задание, которое будет подбивать остатки и "допроводить" документы
46 Vetal_978
 
17.10.11
10:58
(44) не совсем понятен вопрос. Если в транзакции происходит чтение - то уровень изоляции read commited, если вне транзакции то read uncommited. Вроде так. Если не будешь ставить блокировку средствами 1С - не будет блокировки.
47 Alex_MA
 
17.10.11
12:01
(46)все понятно, спасибо