Добрый день!
Возникла такая проблема, на предприятии используется 1С Документооборот, форма "Задачи мне" открывается более 70 секунд, что очень медленно и на это жалуются пользователи. А другая форма "Задачи от меня" с таким же объёмом данных открывает до 2 секунд. Стал вопрос по поводу оптимизации открытия этой формы. При этом если отключить группировку по исполнителю, то форма открывается в 2 раза быстрее(40 секунд), но это всё равно очень медленно. Также смотрела про RLS, что он может усложнять запрос, за счёт этого может увеличиваться время открытия формы. Но не особо разобралась в этом. Все ограничения в правах удалила, но всё равно в бд в самом запросе видно, что работает RLS. Какие есть ещё варианты как уменьшить время открытия формы.
Возникла такая проблема, на предприятии используется 1С Документооборот, форма "Задачи мне" открывается более 70 секунд, что очень медленно и на это жалуются пользователи. А другая форма "Задачи от меня" с таким же объёмом данных открывает до 2 секунд. Стал вопрос по поводу оптимизации открытия этой формы. При этом если отключить группировку по исполнителю, то форма открывается в 2 раза быстрее(40 секунд), но это всё равно очень медленно. Также смотрела про RLS, что он может усложнять запрос, за счёт этого может увеличиваться время открытия формы. Но не особо разобралась в этом. Все ограничения в правах удалила, но всё равно в бд в самом запросе видно, что работает RLS. Какие есть ещё варианты как уменьшить время открытия формы.
Прикрепленные файлы:


По теме из базы знаний
- Некоторые замечания по ускорению работы управляемых форм
- Запросник на управляемых формах
- Решение нестандартных проблем производительности на реальных примерах
- Условное оформление формы в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)
- Исправляем проблемы производительности в конфигурации ERP - 7 примеров
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(15) Попробуйте очистить настройки списка и формы — возможно, добавлены отборы к реквизитам составного типа или выведена подчиненная колонка у реквизита составного типа.
Это можно настроить, отключив АвтоЗаполнениеДоступныхПолей. В конструкторе запроса динамического списка на вкладке "Компоновка данных" заполнить вкладки "Поля" и "Условия". Отключите галки "Использовать дочерние" для полей составного типа.
Это можно настроить, отключив АвтоЗаполнениеДоступныхПолей. В конструкторе запроса динамического списка на вкладке "Компоновка данных" заполнить вкладки "Поля" и "Условия". Отключите галки "Использовать дочерние" для полей составного типа.
Прикрепленные файлы:

"Задачи мне", если я правильно понимаю, содержат в себе еще и все задачи замещения, общие задачи по группам пользователей и т.д.. И запрос там, предположу, весьма корявый. Ускорить такой запрос можно путем фильтрации, кличи которой попадут в индекс. Т.е. получить всех пользователей, которых замещает текущий пользователь, получить все группы пользователя, ну и дальше ГДЕ Юзер в (Юзеры) И Группа в (Группы) - как-то так...
(5) Не совсем понятно как ускорить запрос
Не могли бы вы пояснить более подробно?
Ускорить такой запрос можно путем фильтрации, кличи которой попадут в индекс. Т.е. получить всех пользователей, которых замещает текущий пользователь, получить все группы пользователя, ну и дальше ГДЕ Юзер в (Юзеры) И Группа в (Группы) - как-то так...
Не могли бы вы пояснить более подробно?
(16)
Я бы для начала поменял это, чтобы избавиться от ИЛИ
И (ЗадачиДляВыполнения.СостояниеВыполнения ЕСТЬ NULL
ИЛИ ЗадачиДляВыполнения.СостояниеВыполнения <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗадачДляВыполнения.ГотоваКВыполнению))
Я бы для начала поменял это, чтобы избавиться от ИЛИ
И ЕСТЬNULL(ЗадачиДляВыполнения.СостояниеВыполнения, ЗНАЧЕНИЕ(Перечисление.СостоянияЗадачДляВыполнения.НеГотоваКВыполнению))
<> ЗНАЧЕНИЕ(Перечисление.СостоянияЗадачДляВыполнения.ГотоваКВыполнению)
Можно попробовать посмотреть картину в ТЖ по событию SDBL и DBMSSQL (ну или какой там SQL)
Вроде, если SDBL будет сильно больше DBMSSQL - это может говорить и об утяжелении от RLS.
Если вдруг много будет именно в MSSQL - может, есть смысл сделать UpdateStatistic.
Еще я вижу, что в замере производительности вызов из некоторого модуля
АС_ИмяМодуля
Что, видимо, говорит о доработках. Попробуйте в копии привести вызов к типовому? и потом сравнить запросы (предположение "в лоб" - соединение с нетиповой таблицей без индексов, или что-то вроде того)
Вроде, если SDBL будет сильно больше DBMSSQL - это может говорить и об утяжелении от RLS.
Если вдруг много будет именно в MSSQL - может, есть смысл сделать UpdateStatistic.
Еще я вижу, что в замере производительности вызов из некоторого модуля
АС_ИмяМодуля
Что, видимо, говорит о доработках. Попробуйте в копии привести вызов к типовому? и потом сравнить запросы (предположение "в лоб" - соединение с нетиповой таблицей без индексов, или что-то вроде того)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот