#0
by Dwarrior
Здравствуйте! Есть база УТ 10.3, в ней создан новый план обмена, РИБ. База большая, 400Гб, по плану обмена выгружается довольно большой объем данных (реализация, контрагенты и пр.). Так вот, наблюдается "конфликт блокировки транзакций" при выгрузке файлов в дочерние базы (в базе в это время работают юзеры). Можно как-то минимизировать этот конфликт блокировок? Понимаю, что для целостности выгружаемых данных необходима блокировка изменений. Но все же, проблема есть. Есть несколько мыслей, не знаю, поможет ли: 1. Управляемые блокировки 2. План обмена сделать не РИБ/обмен по правилам обмена Подскажите, кто как боролся с этой проблемой?
#1
by Spieluhr
1. Блокировки ставит платформа 2. Нет Не запускать обмен с почками одновременно. Сделать один сценарий, чтобы последовательно происходила загрузка/выгрузка по каждому узлу
#3
by mistеr
Выгружать чаще, меньше объем — меньше блокировок. Но не слишком часто. Найти золотую середину.
#4
by Lama12
Есть у меня подозрение что подтверждение о приеме не приходят в базу из которой выгрузка идет.
#5
by Dwarrior
Нет, с этим все нормально, после обмена размер выгружаемого файла уменьшается. Да похоже, что блокируется все - ничего ввести нельзя, только посмотреть Обмены с узлами были разнесены по времени. Конфликт блокировок возникает при выгрузке файла в один узел, там данных много, файл выгружается 10 мин примерно.
#6
by бомболюк
дл начала я бы профайлером нашел "узкое место", если таковое есть - таблица, на которой все толкаются. Если такая есть - надо оптимизировать операции с ней.
#8
by Dwarrior
Хотя бы в двух словах - как?:) Знаю о нем немного. Он покажет какие запросы выполняются и время выполнения запросов?
#11
by Fragster
есть тема сделать "виртуальные" узлы с round-robin регистрацией, при выгрузке - пихать все в один файл
#13
by бомболюк
в профайлере ставим 2 события: Lock(aquire) и Lock(cancel), потом фильтр на поле Duration >= 1. В выводимых полях надо ObjectId1, ObjectId2 обязательно, по ним потом таблицу вычислишь. Вывод результатов сделай в таблицу какую нить, потом анализируй суммарное значение Duration для каждого объекта, где максимум - там узкое место.
#16
by Cyberhawk
уже сделано в стороннем платном решении, а вариация на тему - разбивать по виртуальным узлам в момент выгрузки (забора изменений с реального узла), а не регистрации
#24
by vi0
рассмотри то, что блокировку для РИба устанавливает метод ЗаписатьИзменения возможно, сделать полностью свой обмен, со своими выборками изменений, например запросом выгрузку изменений конфигурации тоже как-то изолировать но, полагаю, это трудоемкая задача
#25
by undertaker
еще может помочь переход на регистрацию изменений по правилам регистрации объектов, если это сейчас не так сделано
#28
by Spieluhr
по науке в ЦБ юзеры только на просмотр должны работать, тогда и проблем с блокировками не будет
#31
by MaxS
Давно делал так - выделял одну центральную базу только для обменов, пользователей там небыло. Центральный офис сидел рядом в РИБ.
#32
by Dwarrior
А та дочерняя база РИБ (где сидит центральный офис), когда обменивалась с центральной, не ловила конфликт блокировок? Не вижу выигрыша: данное, забитое юзером, все равно надо выгружать, неважно дочерняя база у тебя или центральная. Допустим, в моем примере вынесу обмен с дочерними узлами из центра в отдельную базу - так ведь данные в эту дочернюю все равно выгружать/загружать придется? С регистрацией изменений считаю проблем нет - подписки на события, которые фильтруют ненужные для обмена данные. Т.е. в таблицах рег. изменений только реальные данные.
#33
by vi0
можно фильтрацию делать в момент выгрузки, тогда выгрузка будет проходить дольше, блокировки дольше
#34
by Fragster
правильно делать и в момент регистрации и в момент выгрузки, потому что условия выгрузки могут поменяться
#35
by vi0
не согласен - это уже пахнет копипастой условия поменяются - перерегистрировать принудительно
#36
by Serg_1960
"Выделенный" (т.е. без пользователей) центральный узел(ЦУ) имеет смысл делать, когда у него много подчинённых узлов(ПУ). Если немного подумать, то станет понятно почему: в то время, когда ПУ однократно обменивается только с ЦУ, ЦУ приходится многократно обмениваться с каждым ПУ по очереди. Разумеется это касается топологии РИБ типа "звезда". PS: не знаю используют ли сейчас такие термины, как "активная звезда"(когда в центре сервер) и "пассивная звезда"(когда в центре концентратор).
#37
by pavig
ну так бы сразу и написал - фильтрацию перенести на момент регистрации, а не на момент выгрузки
#39
by Serg_1960
Кстати: самый полезный совет из всего сказано - это . Но есть один нюанс в базах с планом обмена "РИБ": если сеанс обмена завершится ошибкой, то в можно получить ситуации, когда проведённый документ будет без движений (с неполным "комплектом" движений) или когда движения окажутся без регистратора в базе.
#42
by Serg_1960
PS: Я бы осторожно порекомендовал бы первоначально уменьшить время между сеансами обмена.
#46
by MaxS
Как уже сказали имеет смысл если много периферийных баз. Каждый обмен блокирует какую-нибудь таблицу. А для ЦБ-ЦБ блокировка будет один раз. Оптом должно быть быстрее. Минусы правда - лишняя база, ещё один обмен, кто-то должен следить за этим.
#47
by Dwarrior
В-общем, ситуация понятна. Принципиально ничего сделать нельзя. Из вторичных мер: 1. Буферный узел обмена 2. Выгрузка порциями(Колво элементов в транзакции) 3. Поиск профайлером возможных "узких" мест в операции выгрузки данных, которые, может быть, удастся оптимизировать. Всем большое спасибо!
#51
by Serg_1960
"почему самый полезный" - потому, что самый простой и оперативный в реализации на конкретном узле. Без лишних телодвижений.
#53
by youalex
теоретически, можно рабочую базу реплицировать средствами скуля, и обмены с реплики отправлять. Отчеты, кстати, тоже, можно за данными туда отправлять.
#56
by Serg_1960
Расставлю точки над "и": совет - полезный, а метод - самый простой и оперативный. Хех... о чём мы спорим? (риторический вопрос)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Причины конфликта блокировок в УПП
- УПП. Ошибка XML при обмене с РБД.
- v7: Уменьшение размера 1SENTRY.DBF
- Ошибка при чтении изменений при обмене РИБ ...кто-нибудь сталкивался?
- Колизия при обмене РИБ. Как устранить?
- пропадают документы во время конфликта блокировок
- v7: Бухия: уменьшение уставного капитала, расчёты с учредителями и счёт 75.1
- Ошибка при чтении изменений при обмене РИБ УТ 10.3
- Почему уменьшение НДС в корр. сч-ф. продавца отражается в книге покупок?
- Не делается синхронизация из-за конфликта блокировок
- ЗУП. Уменьшение Ставки страховых взносов ФСС НС и ПЗ
В этой группе 1С
- УПП 1.3 Медосмотры
- 1С УПП: Ввод начальных остатков материалов в эксплуатацию
- Система контроля версий для 1С обработок.
- Где находятся регламентированные отчеты в БГУ ред. 2
- пинкод не укомплектован
- КД. Ошибка в ПКС: Получение элемента по индексу для значения неопределено
- УПП 1.3 отчет валовая прибыль из каких документов формируется
- Программно отключить регламентное задание
- Ком соединение из 1с8.3 к 1с 7.7
- Передача таблицы значений в другую форму
- Штрихкод не выводится на печать
- Сальдо на 76,05 после перехода на БП 3
- не делается расчёт себестоимости по концу месяца в УТ 11.2
- Как пробросить порт из интернета на серый ИП?
- Интеграция обмена Frontol с УТ 10.3. Нужен совет.
- Не удалось сформировать тексты выгрузки
- Как в управляемой форме изменить масштаб поля табличного документа?
- ЗУП 2.5 Метод "отклонений". Изменить ночные часы.
- v7: Шифрование алгоритмом SHA1
- УПП 1.3. Контролируемые сделки