Устранение задержек при вызове серверный функций в УФ

Модератор: Дмитрий Юхтимовский

Устранение задержек при вызове серверный функций в УФ

Сообщение simol » 19 апр 2013, 11:54

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

Есть УФ с несколькими таблицами. По требованиям задачи при продвижении по строкам одной таблицы (большой) необходимо перезаполить остальные таблицы.

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

При этом само заполнение таблиц происходит быстро. а вот сам вызов серверной процедуры, в связи с передачей в контексте большой основной таблицы происходит очень медленно. Вот пример замера производительности клиента SQLSize в форме обработки СтруктураМетаданных в котором проявляется такая ситуация. Я в ней получил структуру метаданных и двигаюсь по строкам таблицы "Таблицы"
Получаю следующий ситуацию:Изображение.
Смена строки занимает 6 секунд.

Как я решаю:
В виду невозможности передачи между клиентом и сервером таблицы значений я
1) При передаче с клиента на сервер необходимые текущие данные таблицы трансформирую в структуру, а необходимые таблицы в массив структур.
2) На сервере все возвращаемые таблицы для клиента трансформирую в массив структур.
3) На клиенте после возврата из сервера по массивам структур добавляю строки в таблицы.

Такой подход устранят указанную проблему. Единственное смущает на сколько таком метод не считается "костылем".

Есть ли более "правильное" решение устранения такой задержки?
Вложения
ЗамерПроизводительности.pff.rar
Замер производительности
(1.38 KiB) Скачиваний: 236
simol
 
Сообщений: 101
Зарегистрирован: 18 фев 2013, 11:17

Вернуться в Осуждаем проблемы производительности 1с

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1