Ускоряем 1С:Документооборот КОРП 2.1

12.03.25

База данных - HighLoad оптимизация

Хотя документооборот не является классической системой регламентированного учета, но скорость его работы тоже важна. Учитывая, что им пользуются руководители высшего звена и их помощники, которые крайне трепетно относятся к простоям и "тормозам". Данное расширение ускоряет работу основных операций документооборота. Как-то расчет прав, сохранение внутренних, входящих, исходящих документов. В зависимости от количества пользователей и объектов в базе ускорение может быть с "нескольких минут до секунд". А пересчет прав при делегировании у меня сократился с 51 000 сек до менее 10.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Ускоряем 1С Документооборот КОРП 2
.cfe 279,56Kb ver:2024.07.17
61 4 550 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

У Документооборота всегда были неважные параметры по производительности, когда в нем работает более 100 сотрудников.

В нашей компании более 800 человек одновременно онлайн, много дочерних организаций и между ними обмен документами. Задача производительности одна из критичных.

При анализе ситуации с ДО 2.1 было выявлено несколько групп "тормозов":

1. Долгая запись документа ДО (входящий, исходящий, внутренний). Причина аналогичная у всех трех объектов. Перед записью проверяет изменились ли права и надо ли перезаписывать. Проверка идет кодом 1С - два цикла. Добавлено, удалено. При небольших объемах прав на объект это "летает". Но при значительных (тысячи и более) запись документа уже может идти минутами. Замена на SQL запрос позволило ускорить процесс до секунд, практически зависимо от количества прав на объект.

2 Пересчет прав. Общий модуль. Тут ситуация сложнее  Идет не быстро. Добавление индексов в типовой запрос ситуацию улучшили, но!

2.1. Несколько раз в неделю "зависает" пересчет прав на полдня. Так как мешает работе пользователей -процесс снимали или пересчет прав останавливали, но это не выход.

2.2. Сам запрос нашли в скуле, но там временные таблицы, что в них и почему так долго идет, причем не всегда такое с таким же запросом,  непонятно с ходу, где копать.

На помощь пришел инструмент мониторинга - 1smonitor. Дождались, когда дойдет до конца, монитор показал весь путь к проблемному вызову, ситуация стала яснее.

Причина - пересчет в режиме "делегирование" - когда пересчитывается огромная таблица всех прав по делегированию. 

Типовой запрос - два вложенных соединения, при чем как всегда связи "перекрестные" - то есть,

1 - связь первой таблицы со второй, по полям первой и второй таблицы 

2 - связь третьей таблицы по полю первой + поле из второй

Естественно, SQL не может предсказать ситуацию и использовать подходящий индекс и получает из трех таблиц все строки и вяжет все со всеми.

Так как все три таблицы содержат по  десяткам миллионов строк данных - запрос в итоге строился 51 000 сек.

Хорошо подумав, нашел решение, как этот типовой механизм динамического построения запросов переделать.

Вынес первую связку в отдельную временную таблицу с нужными полями для связи.

И потом уже "вязал" временную таблицу с третьей.

В итоге время построения запроса сократилось с 51000 сек до 10 сек.

Плюс так как этот же запрос вызывался при открытии файлов - тоже получилось ускорение. 

Ускорение сделано в виде расширения, изменения "обернуты" в "ИзменениеИКонтроль" -поэтому в худшем случае не применяется и ничего не сломают при обновлении релиза.

Подходит под последнюю версию типового ДО 2.1.

Естественно, при применении проверяйте, что нет конфликтов и ошибок применений.

 

08.07.2024

Добавлено ускорение в фоновое задание "Эскалация задач" - переделан запрос. На наших 21 000 000 задач было порядка 300 сек, стало 6

 

16.07.2024

Улучшено ускорение в фоновое задание "Эскалация задач" - переделан запрос. На наших 21 000 000 задач было порядка 300 сек, итого стало 0.07 сек

Проверено на следующих конфигурациях и релизах:

  • Документооборот КОРП, релизы 2.1.34.1

Вступайте в нашу телеграмм-группу Инфостарт

Документооборот тормоза ускорение

См. также

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 Бесплатно (free)

В статье речь пойдет про взаимодействие сервера 1С с MS SQL. Мы очень часто слышим, как важно оптимизировать все критические участки системы заблаговременно, в плановом режиме, как надо, «от и до» во всех деталях. Но в реальной жизни бывает по-другому. Очень часто клиенты обращаются к нам, когда система уже не дает работать: «спасите, помогите, болит очень сильно, надо решать». Об одном из таких случаев я и хотел бы вам сегодня рассказать.

11.07.2017    56207    R.Tsarenko    32    

229

HighLoad оптимизация Программист Запросы Бесплатно (free)

Наверное, каждый 1С-ник задавался вопросом "что быстрее, соединение или условие в ГДЕ?" или, например, "сделать вложенный запрос или поставить оператор В()"? В данной статье я не дам вам исчерпывающих инструкций по чтению планов запроса. Но я постараюсь объяснить доходчиво - что это такое и с какой стороны к ним подойти.

04.07.2017    61253    Evil Beaver    59    

393

HighLoad оптимизация Администрирование СУБД Системный администратор Программист 1С v8.3 Бесплатно (free)

Многие интересуются PostgreSQL, но не знают, насколько хорошо будет она работать с уже существующими системами. «Инфософт» - одна из первых компаний, кто опробовал PostgreSQL на Windows. О своем опыте перехода рассказывает руководитель отдела информационных технологий компании.      

23.06.2017    50484    a.doroshkevich    113    

167

HighLoad оптимизация Программист 1С v8.3 Управляемые формы 1C:Бухгалтерия Бесплатно (free)

Я являюсь автором и тренером курсов по оптимизации и повышению производительности в 1С. Большинство людей приходят ко мне на обучение, желая разобраться со своими проблемами, и я очень часто слышу от них: «эти блокировки замучили, достали, жизни нет, что делать – не знаем. Технологический журнал включали, галочки ставили, форумы читали – ничего не помогает». Я уверен, что эта тема актуальна для многих из вас, поэтому в статье, не вдаваясь глубоко в подробности, я хочу вам дать некоторые конкретные рекомендации, которые вы сможете применить у себя и сразу получить ощутимый эффект. Например, если у вас запрос из-за блокировок выполняется 15 секунд, то после оптимизации он начнет выполняться за 15 миллисекунд. Это обычная практика, никакой фантастики – все это можно сделать.

13.06.2017    119724    Andreynikus    38    

455

Универсальные функции HighLoad оптимизация Инструментарий разработчика Программист 1С v8.3 1C:Бухгалтерия Россия Абонемент ($m)

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    59681    DarkAn    87    

207

Архивирование (backup) HighLoad оптимизация Системный администратор Программист 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Очень удобный способ, когда нам нужна не просто резервная копия, а "горячая" замена серверов.

19.05.2017    44558    MsDjuice    24    

73

HighLoad оптимизация Системный администратор Программист 1С v8.3 ИТ-компания Бесплатно (free)

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    33302    BraunAlex    34    

55
Отзывы
6. Viktor_Ermakov 393 02.07.24 08:14 Сейчас в теме
самое главное написать ребятам разработчикам ДО (Безбородову Александру) что бы эти узкие места в типовом решении исправили!
d4rkmesa; mefalcon; Tantor; mart-sha; ilyav; Дмитрий74Чел; user594342_kosushko; +7 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. titanium2008 47 01.07.24 16:05 Сейчас в теме
Спасибо за проделанную работу, а форму- Задачи мне не оптимизировали случаем?) У нас она что то тормозить стала
2. ZAOSTG 190 01.07.24 16:23 Сейчас в теме
(1)Оптимизировал много -просто решил часть в расширение и в общий доступ на пользу обществу.
Сейчас гляну что по задаче мне оптимизировал - там помоемому больше кода - много раз получало язык и чето-еще -вынес в повторно используемый модуль и "полетело".
Вечером гляну.
я бы посоветовал мою другую обработку " в пару" - анализ SQL глазами 1с-ника
там много интересного накопал пока писал -и постарался сделать ее максимально простой в понимании
3. titanium2008 47 01.07.24 16:37 Сейчас в теме
Спасибо, если получится - выложите тоже . А то Задачи мне очень больная тема для нас))
7. ZAOSTG 190 03.07.24 09:45 Сейчас в теме
(3)Явно не нашел чтобы в этой форме что-то менял - видимо или оптимизировал общие запросы, или переделывал индексы чтобы скуль не ошибался
Совет -поставить 1smonitor как качественный сбор и анализ
и как минимум мою обработку анализа скуля - сразу покажет что не так со скулем, если тек запросы идут что с ними не так и тп
4. Serg O. 314 01.07.24 16:58 Сейчас в теме
а на более ранней версии ДО 2.1.32.6 будет работать ?
или надо до 2.1.34.1 обязательно обновляться ?
5. ZAOSTG 190 01.07.24 17:36 Сейчас в теме
(4) могу попробовать там запустить - но 99% что будет. думаю там этот кусок не менялся давно
6. Viktor_Ermakov 393 02.07.24 08:14 Сейчас в теме
самое главное написать ребятам разработчикам ДО (Безбородову Александру) что бы эти узкие места в типовом решении исправили!
d4rkmesa; mefalcon; Tantor; mart-sha; ilyav; Дмитрий74Чел; user594342_kosushko; +7 Ответить
8. titanium2008 47 03.07.24 21:05 Сейчас в теме
(6) они уже все в ДО 3.0 . Думаю 2.1 теперь по остаточному принципу)
9. titanium2008 47 03.07.24 21:05 Сейчас в теме
Для отправки сообщения требуется регистрация/авторизация