Управляемые блокировки на оборотный регистр #808930


#0 by breezee
Коллеги, добрый день! Есть не типовой оборотный регистр в УПП. У УПП режим блокировок управляемый. У регистра автоматический. Поможет ли перевод оборотного регистра в управляемый режим блокировок? Надо ли устаннавливать управляемую блокировки для увеличения параллельности? Контроля остатков по этому регистру нет(и быть не может, так как он не остаточный)
#1 by ptiz
Прочитай мануалы про сочетание режимов блокировок конфигурации и объектов, и вопрос отпадет.
#2 by breezee
Поможет ли перевод оборотного регистра в управляемый режим блокировок? Имел ввиду что система безбожно тормозит, гов-ода нет(есть, но мало). Грешу на блокировки автоматические
#3 by МимохожийОднако
Нет. Если не понял первопричину тормозов. Замеры производительности делал?
#4 by breezee
Да, отпал вопрос Если же установлен режим Управляемый, то, независимо от того, какие режимы управления блокировками установлены для конкретных объектов конфигурации (об этом смотри далее), при записи, скажем, документа система всегда будет самостоятельно устанавливать необходимые управляемые блокировки, которые будут обрабатываться собственным менеджером транзакционных блокировок. Этот режим предназначен для работы всей конфигурации только с управляемыми блокировками в транзакции.
#5 by breezee
Делал, там везде значения меньше процента в обработке проведения, хз, что делать... Загрузка документов идет с интернета, документы загружаются и проводятся секунд за 8, что очень долго. Погуглил, решил включить режим "Read committed snapshot" на скуле, подумал, что проблема где-то в блокировках может быть
#6 by breezee
Может есть идеи у кого, как поправить ситуацию? Нашел обработку, которая смотррит блокировка, он она на УФ(можно переделать, но я не уверен что это оправдано, так как не выявил проблему)
#7 by ptiz
Разделение итогов включено? (в конфигураторе и предприятии)
#8 by breezee
У регистра не включено, в предприятии тоже включается?
#9 by ptiz
Включи, и там, и там.
#10 by breezee
В предприятии было включено, в конфигураторе нет - жесть какая-то
#11 by mistеr
Может у тебя загрузка из интернета долго идет. Попробуй записывать без проведения и сравни время. Если все же запись или проведение, то найди тормозящий запрос и профилируй его в скуле.
#12 by breezee
У меня без проведения не выйдет, там все завязано, был еще вариант отдельно грузить проводки, но тогда по времени тоже самое должно выйти. А тормозящих запросов нет, были, но они переписаны, если я буду оптимизировать строчки кода по 0,5% я эти 0,5% и выиграю, прям безысходность(
#13 by breezee
Подскажите, в УПП же управляемые блокировки? не будет граязного чтения если включу режим Read commited snapshot на скуле?
#14 by тарам пам пам
проверь еще в замере производительности время выполнения в целом по функциям - скорее всего в какой-то из них алгоритм в целом неэффективно написан, 100 строк по 0,5% - уже 50%. Read commited snapshot включать можно, это платформа вообще должна сама делать начиная с 8.3 ЕМНИП. Но ты вообще не совсем правильно идешь. С чего ты взял, что у тебя тормозят именно блокировки? В монопольном режиме быстро проводится? Если в монопольном режиме тоже тормозит, то это сто процентов НЕ блокировки.
#15 by breezee
В монопольном тоже медленно, я не знаю виновника( Вроде и оборудование не загружено и все ок в коде, а проводиться не очень быстро
#16 by H A D G E H O G s
Позовите специалиста.
#17 by breezee
Хочу получить свой опыт, на фиксе не так много развлечений)
#18 by тарам пам пам
Значит в коде не "все ок". Если код не очень большой, можешь сюда его выложить, желательно вместе с замером.
#19 by Cyberhawk
"В монопольном тоже медленно" // Как проверял? Конкретнее как ты делал монопольным режим?
#20 by mistеr
Но 8 секунд откуда-то берутся. В замере ты их видишь или нет?
#21 by vis_tmp
А УПП полностью типовая?
#22 by Spieluhr
Начните с понимания того как считает время Замер производительности. Что в нем учитывается, а что нет. С блокировками проблем у вас точно нет
#23 by Cyberhawk
+ Например длительность выполнения запроса при открытии ДС (дин. списка) замер не учитывает: форма может открываться 5 секунд, а по замеру 0.5 секунд :)
#24 by breezee
Нет, сильно переписанная Клиентские и серверные вызовы С формой не работаю, загрузка без форм
#25 by Cyberhawk
Обрати внимание на первое слово
#26 by breezee
Подскажите, плз. Есть сейчас не типовой регистр остатков. Если я включу на sql read commited snapshot isolation - при контроле остатков у этого регистра без наложения управляемых блокировок могут считаться не правльные данные? Режим управления блокировк у конфы сейчас управляемый
#27 by breezee
>В обычном режиме MS SQL Server каждый делает попытку наложить блокировку на строку с нужной записью остатков. Когда вы включите версионирование, то каждый пользователь прочитает ВЕРСИЮ, которая предварительно будет помещена из основной базы в tempdb. Затем сделает транзакцию и удалит версию. (текст с сайта Гилева) Я правильно понимаю, что все прочитают одни и те же остатки, допустим остаток 50, у 10 пользователей нужно добавить расход по 50, в итоге у нас полчится остаток -450?
#28 by breezee
Вопрос закрыт, нашел статью на ИС, которая отвечает что без управляемых блокировок ничерта не отработает. Однако, из справки в ИТС делаю вывод, что даже если мы не наложим блокировку через "Новый блокировка данных" все отработает корректно. "Если же установлен режим Управляемый, то, независимо от того, какие режимы управления блокировками установлены для конкретных объектов конфигурации (об этом смотри далее), при записи, скажем, документа система всегда будет самостоятельно устанавливать необходимые управляемые блокировки, которые будут обрабатываться собственным менеджером транзакционных блокировок. Этот режим предназначен для работы всей конфигурации только с управляемыми блокировками в транзакции." Я так понял, блокировки могут быть избыточными, ну и хрен с ним, они будут и их прописывать в ручную не нужно. Завтра ставлю режим в скл)
#29 by Cyberhawk
read commited snapshot isolation дает эффект за счет того, что запрос чтения остатков внутри транзакции не блокирует таблицу остатков до конца этой транзакции
#30 by H A D G E H O G s
Забей. Никакого выхлопа от твоих телодвижений не будет.
#31 by breezee
Но управляемые блокировки будут наложены в любом случае на уровне 1С, значит и в СУБД будут
#32 by breezee
А что порекомендуете?
#33 by H A D G E H O G s
Ничего. Проблема не в блокировках. Что в автоматических, что в управляемых - если ты не контролируешь остатки в регистре, а, конкретнее, если ты не читаешь регистр в транзакции проведения - то никакого смысла заморачиваться с блокировками нет. Единственное, для остаточных регистров следует отключить разделение итогов.
#34 by breezee
При проведении документа много где идет чтение регистра. Почему отключчить? Может, наоборот - включить? Чтобы данные туда быстрее писались
#35 by H A D G E H O G s
Вы же сами написали в , что чтения - нет
#36 by breezee
Блин, а в чем проблема? И сервер настроили по инструкции с ИТС, а он работает не на полную мощность, проц процентах на 40 крутится постоянно, память тоже не вся отожрана. Код не очень плохой, а ведь проводится медленно Извините, спрашивал для одного не типового регистра, всего разных не типовых регистров в базе штук 20
#37 by breezee
Регистров накопления*
#38 by H A D G E H O G s
"проц процентах на 40 крутится постоянно" Прекрасный показатель утилизации.
#39 by ptiz
"Код не очень плохой, а ведь проводится медленно " - вот и надо искать причину, а не бросаться делать "что-нибудь".
#40 by H A D G E H O G s
Вот, можно почитать
#41 by Demiurg
загрузку делаете надеюсь не через COM?
#42 by Demiurg
наборзаписей.Прочитать ведь не используете?
#43 by Demiurg
собирайте замером отладчика для начала что там у вас при заливке происходит, смотрите куда уходит время
#44 by breezee
Не смотрел, вроде, не через ком А это критично? Дак собирал, все на проведение уходит
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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