Производительность открытия формы

1. NatalishkaGuldanova 20.05.24 09:39 Сейчас в теме
Добрый день!
Возникла такая проблема, на предприятии используется 1С Документооборот, форма "Задачи мне" открывается более 70 секунд, что очень медленно и на это жалуются пользователи. А другая форма "Задачи от меня" с таким же объёмом данных открывает до 2 секунд. Стал вопрос по поводу оптимизации открытия этой формы. При этом если отключить группировку по исполнителю, то форма открывается в 2 раза быстрее(40 секунд), но это всё равно очень медленно. Также смотрела про RLS, что он может усложнять запрос, за счёт этого может увеличиваться время открытия формы. Но не особо разобралась в этом. Все ограничения в правах удалила, но всё равно в бд в самом запросе видно, что работает RLS. Какие есть ещё варианты как уменьшить время открытия формы.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 81 20.05.24 10:00 Сейчас в теме
(1)Открыть код самой продолжительной операции, разобраться с ним - должно стать понятным, можно ли что-то улучшить и за счет чего.
3. NatalishkaGuldanova 20.05.24 10:04 Сейчас в теме
(2) Самая длительная операция - это открытие формы и посмотреть, что именно долго выполняется достаточно проблематично
4. nomad_irk 81 20.05.24 10:07 Сейчас в теме
(3)Необходимо знать, какие действия скрываются под "ОткрытьФорму". Без этих знаний - действительно, достаточно проблематично.
6. SlavaKron 20.05.24 10:14 Сейчас в теме
(1) Покажите весь код вокруг ОткрытьФорму(БизнесПроцессыИЗадачиВызовСервера… и функцию из модуля БизнесПроцессыИЗадачиВызовСервера, результат которой подставляется в первый параметр метода ОткрытьФорму.
7. nomad_irk 81 20.05.24 10:16 Сейчас в теме
8. NatalishkaGuldanova 20.05.24 10:22 Сейчас в теме
(6) ОткрытьФорму(БизнесПроцессыИЗадачиВызовСервера.ИмяФормыЗадачиМне()); эта функция возвращает наименование формы
10. SlavaKron 20.05.24 10:30 Сейчас в теме
(8) попробуйте прописать фиксированное имя формы вместо вызова функции. На форме есть динамический список? Если да, покажите текст запроса перед самым выходом из ПриСозданииНаСервере.
13. NatalishkaGuldanova 20.05.24 11:09 Сейчас в теме
(10) Фиксированное имя формы не помогло.
15. NatalishkaGuldanova 20.05.24 11:42 Сейчас в теме
(10) Вот текст запроса, посмотрите пожалуйста
Прикрепленные файлы:
txt.txt
18. SlavaKron 20.05.24 17:27 Сейчас в теме
(15) Попробуйте очистить настройки списка и формы — возможно, добавлены отборы к реквизитам составного типа или выведена подчиненная колонка у реквизита составного типа.
Это можно настроить, отключив АвтоЗаполнениеДоступныхПолей. В конструкторе запроса динамического списка на вкладке "Компоновка данных" заполнить вкладки "Поля" и "Условия". Отключите галки "Использовать дочерние" для полей составного типа.
Прикрепленные файлы:
9. Westonline82 20.05.24 10:25 Сейчас в теме
(1) Добавить роль пользователю "Чтение процессов и задач без ограничения" и посмотри станет лучше или нет.
14. NatalishkaGuldanova 20.05.24 11:24 Сейчас в теме
(9) Добавление роли не помогло
5. starik-2005 3167 20.05.24 10:10 Сейчас в теме
"Задачи мне", если я правильно понимаю, содержат в себе еще и все задачи замещения, общие задачи по группам пользователей и т.д.. И запрос там, предположу, весьма корявый. Ускорить такой запрос можно путем фильтрации, кличи которой попадут в индекс. Т.е. получить всех пользователей, которых замещает текущий пользователь, получить все группы пользователя, ну и дальше ГДЕ Юзер в (Юзеры) И Группа в (Группы) - как-то так...
11. NatalishkaGuldanova 20.05.24 10:39 Сейчас в теме
(5) Не совсем понятно как ускорить запрос
Ускорить такой запрос можно путем фильтрации, кличи которой попадут в индекс. Т.е. получить всех пользователей, которых замещает текущий пользователь, получить все группы пользователя, ну и дальше ГДЕ Юзер в (Юзеры) И Группа в (Группы) - как-то так...

Не могли бы вы пояснить более подробно?
12. starik-2005 3167 20.05.24 10:40 Сейчас в теме
(11)
Не могли бы вы
Не хочу. У меня ДО нет.
16. NatalishkaGuldanova 20.05.24 11:42 Сейчас в теме
(5)Вот запрос
Прикрепленные файлы:
txt.txt
17. starik-2005 3167 20.05.24 11:51 Сейчас в теме
(16)
И (ЗадачиДляВыполнения.СостояниеВыполнения ЕСТЬ NULL
            ИЛИ ЗадачиДляВыполнения.СостояниеВыполнения <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗадачДляВыполнения.ГотоваКВыполнению))


Я бы для начала поменял это, чтобы избавиться от ИЛИ
И ЕСТЬNULL(ЗадачиДляВыполнения.СостояниеВыполнения, ЗНАЧЕНИЕ(Перечисление.СостоянияЗадачДляВыполнения.НеГотоваКВыполнению))
 <> ЗНАЧЕНИЕ(Перечисление.СостоянияЗадачДляВыполнения.ГотоваКВыполнению)
19. erutan 106 20.05.24 18:10 Сейчас в теме
Можно попробовать посмотреть картину в ТЖ по событию SDBL и DBMSSQL (ну или какой там SQL)

Вроде, если SDBL будет сильно больше DBMSSQL - это может говорить и об утяжелении от RLS.

Если вдруг много будет именно в MSSQL - может, есть смысл сделать UpdateStatistic.

Еще я вижу, что в замере производительности вызов из некоторого модуля

АС_ИмяМодуля
Что, видимо, говорит о доработках. Попробуйте в копии привести вызов к типовому? и потом сравнить запросы (предположение "в лоб" - соединение с нетиповой таблицей без индексов, или что-то вроде того)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот