Некоторые замечания по ускорению работы управляемых форм

Началось все с того, что к нам обратился клиент для проведения аудита производительности. Были жалобы на общую производительность системы, а также были обозначены отдельные конкретные операции, которые выполняются долго. О некоторых этих операциях, и о том, как их удалось ускорить и хочу рассказать.

Началось все с того, что к нам обратился клиент для проведения аудита производительности. Были жалобы на общую производительность системы, а также были обозначены отдельные конкретные операции, которые выполняются долго. О некоторых этих операциях, и о том, как их удалось ускорить и хочу рассказать.

Операция 1. Рабочее место менеджера по отгрузке

Есть обработка на управляемых формах, в которой основной элемент – это динамический список.  Данная обработка является критичной для бизнеса, т.к. используется она довольно часто и ее медленная работа влияет на скорость всего бизнес-процесса отгрузки.

Медленно выполняется операция по открытию и обновлению этого динамического списка. Среднее время выполнения этой операции у пользователя с включенным RLS составляло примерно 60 секунд. Данное поведение стабильно воспроизводилось и на копии базы. При работе без RLS скорость увеличивалась до 40 секунд.

Начали делать анализ с замера производительности 1С, однако это не дало никакой информации, т.к. операции по обновлению динамического списка в него не попадают. Тогда стали анализировать с помощью SQL Profiler. Обнаружили, что в этой операции выполняется два долгих запроса, т.к. на данной форме располагаются два динамических списка. Второй динамический список располагался на второй закладке, которая не отображалась при открытии, однако данные тот список получал и при открытии, и при выполнении команды «Обновить» из первого списка.

Также этот второй список получал данные даже дольше первого.

Проанализировав текст запроса, мы увидели, что и для первого, и для второго запроса тексты были громоздкими. В первом запроса было соединено шесть таблиц и вложенные запросы, а во втором использовалось пять таблиц. 
В динамические списки не стоит задавать сложные запросы, т.к. он читает данные курсорным способом (выбирая данные порционно), а на сложных запросах, в которых участвует много таблиц, чтение курсорным способом может не быть выполнена оптимально оптимизатором СУБД. Рекомендация для таких случаев создавать регистр, в который заносить данные для этого динамического списка. Однако мы продолжили дальнейшее исследование.

В тексте второго запроса нашли возможность оптимизации запроса. В тексте использовалось разыменование поля составного типа. Используя конструкцию «ВЫРАЗИТЬ» удалось ускорить операцию открытия списка формы, однако незначительно.

Текст до изменения:

После:

Список до сих пор открывался долго.

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

Мы решили отключить этот список, и включать его только при открытии пользователем этой закладки. Попробовали сначала отключать его с помощью сброса флажка видимость, однако это не помогло. Запрос все равно получал данные, даже не смотря на то, что список был невидим.

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

В итоге, скорость открытия данной формы возвросла после доработок с 50-60 секунд до 7-10 при проверки открытия пользователем с ограничением по RLS.
Операция 2. Вывод характеристик при подборе товара

Обработка подбора, при выборе номенклатуры, и двойном щелчке на ней, обработка «проваливалась» в выбор остатков по характеристике этой номенклатуры.

Просмотр списка номенклатуры был на приемлемом уровне производительности, однако переход к выбору характеристик мог занимать до 10 секунд. Снятие замеров времени выполнения показало, что среднее время перехода составляет почти 5 секунд, при том что было выполнено почти 5 тысяч операций.

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

При анализе кода обработки, мы увидели возможность заменить контекстный вызов функции «ВывестиХарактеристики» на внеконтекстный. Это позволило сократить объем передаваемого трафика между клиентом и сервером и на наших замерах позволило добиться улучшения в два раза, с 5-6 секунд до 2-3.

Операция 3. Динамический список с остатками

Данная операция была определена с помощью сервиска querytj. Она была в топе долгих запросов на первом месте. Вот некоторые данные о самых долгих операциях выполнения данного запроса. Открытие списка доходило до 500 секунд!

Определив по контексту место данного запроса, определили его текст в терминах 1С.

Оказалось, что это довольно-таки простой запрос. Соединение с  виртуальной таблицей остатков не должно было вызывать проблем, т.к. этот запрос должен был соединяться с таблицей текущих остатков. Также по логике работы текущие остатки должны быть незначительными, т.к. заказы должны закрываться, и в остатках должны оставаться только незакрытые строки.

Однако он выполнялся долго. Просматривая текст запроса, мы нашли участок, приводящий к замедлению. Это было как раз обращение к таблице итогов регистра «ЗаказыНаПеремещение».

«Узкое место»

Причиной этого удалось быстро найти. Это были нулевые итоги в этой таблице. Так из 238 тысяч записей текущих итогов, 236 тысяч были нулевыми. Это очень замедляло выполнение данного запроса. Подробнее об этом вопросе рассказано тут.


Для решения этой проблемы нужно было сделать пересчет итогов. Так до пересчета итогов – мы наблюдали долгое открытие списка документов Перемещение товаров, иногда задержка составляла более 60 секунд. Но после пересчета итогов, данный список стал открываться за время менее секунды.

Выводы:

Динамические списки очень удобны для разработчиков, однако не стоит их нагружать слишком сложными запросами. Помните, что они расчитаны на работу с простыми запросами, в которых можно эффективно использовать курсорное чтение (читать данные порциями).

Также, по возможности, используйте внеконтекстные вызовы для форм, особенно, когда эти формы содержать много данных.

Начать дискуссию

На Авито появляется новый функционал для продавцов, который ранее был у покупателей

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

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора

Расширят административную ответственность за предоставление недостоверных сведений в закупках

ФАС продолжает работу над инициативой введения в КоАП административной ответственности за предоставление недостоверных сведений в закупках.

Бан микроквартир в Москве, годовой хай индекса, крипта растёт. Дивиденды, новые облигации, IPO и другие новости. Воскресный инвестдайджест

На бирже намечается реальная движуха, и я не про IPO Светофора. Доллар вплотную приблизился к желающим купить его по 90, индекс Мосбиржи обновил годовой максимум, а бедным московским инвесторам придётся богатеть, чтобы инвестировать в бетон. Квартиры меньше 28 метров под запретом!

Бан микроквартир в Москве, годовой хай индекса, крипта растёт. Дивиденды, новые облигации, IPO и другие новости. Воскресный инвестдайджест
Лучшие спикеры, новый каждый день

Офис Клерка номинирован на премию Best Office Awards 2024

Объявлены проекты-номинанты премии Best Office Awards 2024. Награждение победителей премии состоится 31 мая в MTC Live Hall финале форума

Офис Клерка номинирован на премию Best Office Awards 2024
2

Алексей Иванов рассказал как блог на Клерке помог компании «Мое дело» выйти из кризиса. В костюме фирмы Adidas

Стратегии монетизации контента на платформе «Клерк» с использованием вебинаров, рассылок и лит-магнитов.

Банки

Покупка жилья в кредит станет более быстрой

Чтобы застройщики быстрее получали финансирование, а участники долевого строительства тратили меньше времени на посещение банков, депутаты предложили разрешить при покупке жилья открывать эскроу-счета удаленно.

Опытом делятся эксперты-практики, без воды
Инвестиции

Инвестиции в недвижимость: новый ЗПИФ Рентал ПРО от создателей ПНК-Рентал. IPO в конце мая – начале июня

«Можем повторить!» — сказали ребята из «А класс капитал» и решили, что пора выводить на биржу новый фонд. С названием долго не думали. Был ПНК-Рентал для всех, а будет Рентал ПРО для квалифицированных инвесторов. Был фонд с пассивным управлением, а будет фонд с активным управлением. Собрал известную информацию и свои мысли по новому фонду.

Инвестиции в недвижимость: новый ЗПИФ Рентал ПРО от создателей ПНК-Рентал. IPO в конце мая – начале июня
Мошенничество

В сервис заказа такси встроили азартные игры

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

Криптовалюта

Как и где купить криптовалюту пошаговая инструкция

Биткоин, Эфир, USDT и другие криптовалюты – отличный способ инвестировать в 2024 году. Сегодня ими пользуются не только крипотрейдеры, но и новички. Многие считают, что купить криптовалюту сложно и непонятно, поэтому отказываются от вложений. К счастью, это не так, и сегодня купить криптовалюту в России так же просто, как обменять рубли на доллары или евро!

Как и где купить криптовалюту пошаговая инструкция
Трудовое право

Роструд назвал основные правовые особенности сезонной работы

По Трудовому кодексу есть особенности регулирования труда работников, занятых на сезонных работах.

Банки

Исламский банкинг будет интересен 90 тысячам компаний

По оценкам Сбера, к 2030 году 30% населения будут составлять мусульмане. Услуги банка, которые не противоречат нормам шариата, заинтересуют 5 млн человек.

Вопросы официального трудоустройства иностранных специалистов. Общая методичка

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

Миникурсы, текстовые и видеоинструкции для бухгалтеров

Кабмин направит на поддержку Запорожской и Херсонской областей 4,4 млрд рублей

Деньги пойдут на выплату зарплат сотрудников бюджетных учреждений.

Госзакупки

Самые интересные споры по госзакупкам за 1 квартал 2024 года

ФАС привела обзор судебной практики в сфере госзакупок за 1 квартал 2024 года.

🔥 Акция «Жаркие скидки в любую погоду»! Самые горячие онлайн-курсы «Клерка» за 4 290 рублей до 20 мая

Мы предлагаем самые выгодные цены на онлайн-курсы по учету на маркетплейсах, УСН, ВЭД, финмоделированию, ФСБУ и бухгалтерии с нуля. Только до 20 мая их можно купить за 4 290 рублей!

Инвестиции

Святой рандом мая. PIKK — акции ПИК

Продолжаю третий сезон святого рандома с покупкой российских акций. Каждый месяц я выбираю одну рандомную акцию из индекса Мосбиржи. Ну как я, делает это святой рандом, он же генератор случайных чисел. Я её потом просто покупаю. Почему? Да потому что какой смысл ручками выбирать акции, если рынок ведет себя непредсказуемо ¯\_(ツ)_/¯

Святой рандом мая. PIKK — акции ПИК
Бесплатно с Трудовые отношения

Сверхурочные в 2024 году: как оплачивать по новым правилам

Порядок оплаты сверхурочных работ закреплен в обновленной ст. 152 ТК во исполнение поручения, которое дал законодателям КС в постановлении от 27.06.2023 № 35-П. Теперь при оплате сверхурочной работы необходим принимать во внимание все компенсационные и стимулирующие выплаты.

Сверхурочные в 2024 году: как оплачивать по новым правилам
Бесплатно с Налоговые проверки

Продажа авто учредителю по цене ниже рыночной: сколько доначислят налоговики

Если организация продает самортизированные активы по низкой цене взаимозависимым лицам, ей доначислят налоги. Разбираем судебную практику.

Продажа авто учредителю по цене ниже рыночной: сколько доначислят налоговики

Что будет с интернетом, мобильной связью, Почтой России, электронными услугами, ИТ: заявления Минцифры

Максут Шадаев перед утверждением на должность министра цифрового развития, связи и массовых коммуникаций РФ назвал основные направления работы и какие вызовы стоят перед Минцифры.

Интересные материалы

Новое приложение «Ситидрайва» удалили из App Store

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