Влияние БСП на производительность базы 1С с добавленными метаданными

04.11.19

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

Повод для статьи — заметное снижение быстродействия при переводе учета с УТ 11.1 на 11.4 по «нашим» не стандартным метаданным (регламенты работы с массовым заполнением/проведением документов/регистров). Предварительно причину увидел во влиянии БСП. Была создана тестовая подсистема, быстродействие которой оцениваем в демобазе "Управление торговлей". С включенными и выключенными подписками БСП.

Скачать исходный код

Наименование Файл Версия Размер
РасширениеОтключениеПодписок_БСП_V1_2
.cfe 37,99Kb
5
.cfe 37,99Kb 5 Скачать
1Cv8_тестБыстродействия_Подсистема
.cf 14,95Kb
2
.cf 14,95Kb 2 Скачать

   Повод для исследования — заметное снижение быстродействия при переводе учета с УТ 11.1 на 11.4  по «нашим», не стандартным метаданным (регламенты работы с массовым заполнением/проведением документов/регистров).

   В первом приближении, одна из причин обнаружилась в «лишней работе» подписок БСП.

   Для исследования проблемы была создана простая тестовая подсистема. (1 — справочник, 1 — документ, 1 — регистр сведений, 1 — регистр накопления). Подсистему добавил в демо базу «Управление торговлей».

   Сравниваем результаты по операциям с «нашими» метаданными в «обычной» файловой демобазе «Управление торговлей» и базе, где часть подписок БСП отключена расширением по обрабатываемым типам.

 

Результаты тестов.

 

Операция

5000 итераций

Управление

торговлей

демо

принимаем за 100%

(эталон)

(мс)

Управление

торговлей

демо

с отключенными подписками БСП для тестовой подсистемы

 

(мс)

% от  эталона

 

меньше 100% - быстрее

1

Справочник создание/заполнение

19873

 

18593

 

93,5

2

Справочник изменение

13605

 

11195

 

82,2

3

Справочник удаление

265465

 

 

176958

66,5

4

Регистр заполнение

11011

 

 

9817

 

89,1

5

Регистр изменение

12088

 

 

11028

91

6

Регистр удаление

1

1

100

7

Документ создание/заполнение/проведение

44057

 

38204

 

86,7

8

Документ изменение/проведение

38938

 

33628

 

86,3

9

Документ удаление

367001

 

214913

 

58,5

 

Конечная цель. Если по ДОБАВЛЕННЫМ метаданным,   не используется  БСП,  лишний функционал должна быть отключен. В  подсистеме, по "добавленным" метаданным нужно выполнение только нашей бизнес логики. 

 

«Исправляем» БСП.

   Написано расширение, отключающее подписки БСП для списка заданных  типов. (Естественно, НЕ меняющее поведение системы для стандартных типов)

   Расширение анализирует обращение к подпискам. Если тип описан как исключение - подписка/обработчик НЕ выполняется.

   Список обрабатываемых/не обрабатываемых типов задается в модуле расширения.

 

   Отключаем не используемую функциональность (для тестовой подсистемы):

       -  миграция элементов между узлами РИБ

       -  автономные рабочие места

       -   метаданные НЕ стандартные и в процедурах обновления не участвуют

       - работа в модели сервиса

       - уведомления/задач пользователя

       - нет доп.реквизитов

       - нет интеграции с документооборотом

       - и т.д…. по функционалу БСП

 

Выводы:

    При отключении «лишних» подписок БСП имеем увеличение быстродействия базы 9-35% в зависимости от вида операции.(для  добавленных метаданных)

    Больше всего интересовал  процесс изменения/проведения документов. При изменении/проведении документа по 1 регистру накопления, при отключенных функциях БСП имеем ~ +9-15% производительности.

    Результаты весьма относительны и зависят от конкретных метаданных. Думал отключение БСП даст больший профит. Видимо есть еще зависимость от размера конфигурации / версии платформы. 

    В серверной среде все сложнее… но порядок цифр по тестам в рабочей базе примерно тот-же;

    В «рабочей» базе, можно поступить проще -  часть функций просто «отключить» расширением.

 

Пример отключаемых функций   (Полный список в расширении ...  конечно, мы знаем/понимаем что и зачем это мы делаем :) :

   АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанных

   АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхНаборЗаписей

   АвтономнаяРаботаПроверитьВозможностьЗаписиОбщихДанныхДокумент

   ОбменДаннымиПолныйПередЗаписьюРегистра

   ОбменДаннымиСОтборамиПередЗаписьюРегистра

   ОбменДаннымиОбменУправлениеТорговлейРозницаПередЗаписьюРегистра

   ОбновлениеВерсииИБПередУдалениемСсылочногоОбъекта

   и т.д.

 

Оставшиеся вопросы к 1С :)  :

Предполагаю, что оптимизация - не сильная сторона разработчиков типовых конфигураций  1С :) ... но: 

  1. Почему отключение доп.функциональности для некоторых/ «своих» типов метаданных на стандартной конфигурации нельзя выполнить, не снимая конфигурацию с поддержки, не используя расширения?
  2. Почему 1С не отключают подписки на «удаленные» объекты, которые не используются ?
    Пример:
       РегистрСведенийНаборЗаписей.УдалитьГруппыЗначенийДоступа
       РегистрСведенийНаборЗаписей.УдалитьРезультатыОбменаДанными
       РегистрСведенийНаборЗаписей.УдалитьРезультатыОбменаДанными
       и т. д. Которые вызываются при ЛЮБОМ сохранении данных, в том числе "не стандартных"
  3. Почему при удалении документа (не стандартный "наш  документ"), который не  участвует в  "бизнес процессах" конфигурации, движении резервов, вызываются методы:
          ПередУдалениемРегистратораПроверитьНаличиеЗаписейВРезервахТоваровОрганизаций
          ... и еще там что-то про контроль записи книг покупок/продаж ... ... задачи по пересчету книг   
  4. ... много чего еще, если придираться. :)

 

Уточнения:

Тестовая машина:

FX8370/RAM 32 гб/ диски SSD CT1000MX500SSD1 система Win7 и базы на разных дисках

Поскольку RAM в несколько раз больше тестируемой базы, фактически сравниваем «вес вычислений» выполняемых алгоритмов.

 

Использовались:

Конфигурация: Управление торговлей 11.4.10.62

Платформа: 1С:Предприятие 8.3 (8.3.15.1489)

Расширение БСП оптимизация управление торговлей

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4697    10    5    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3126    4    0    

20

БСП. Добавляем отчет в меню Отчеты

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    3229    John_d    10    

89

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить

1 стартмани

15.02.2024    8413    170    ZAOSTG    74    

102

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    5028    mrXoxot    11    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. comptr 31 04.11.19 17:25 Сейчас в теме
Если колонка называется "% отклонения", то и считать нужно отклонение, либо назвать колонку "% от эталона".
Dmitrij-2; +1 Ответить
Оставьте свое сообщение