Хранение таблицы значений на сервере или быстрая передача ее между клиентом и сервером
Управляемое приложение. Тонкий клиент. Версия платформы 8.3.14.xx.
Есть большая таблица значений, как реквизит формы. При передачи ее на сервер, происходит существенный лаг по времени. Вопрос: как ускорить передачу с клиента на сервер, либо кто какие варианты хранения, использует таблицы значений на сервере?
На данный момент лучшем решением, видится сохранение ТЗ на сервере во временное хранилище и хранение адреса на клиенте.
Есть большая таблица значений, как реквизит формы. При передачи ее на сервер, происходит существенный лаг по времени. Вопрос: как ускорить передачу с клиента на сервер, либо кто какие варианты хранения, использует таблицы значений на сервере?
На данный момент лучшем решением, видится сохранение ТЗ на сервере во временное хранилище и хранение адреса на клиенте.
По теме из базы знаний
- Распространенные ошибки разработчиков, приводящие к проблемам производительности
- Гарри Поттер и подкапотное пространство веб-клиента
- Подробнее о создании ботов Телеграм с помощью расширения Боцман
- Модель состояния для MVC
- Эффективное управление фоновыми заданиями и коммуникация сеансов сервера с Фоном с помощью Структуры обмена (ноу-хау) + Бонус: Альтернативный вариант через Хранилище настроек
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
А других вариантов вроде и нет. Только помещать в хранилище надо обязательно с привязкой к форме. Тогда время жизни будет привязано к времени жизни формы. И если долго не обращаться, ТЗ может быть сериализована на диск. Тогда будет большой лаг при очередном обращении.
На данный момент лучшем решением, видится сохранение ТЗ на сервере во временное хранилище и хранение адреса на клиенте.
А других вариантов вроде и нет. Только помещать в хранилище надо обязательно с привязкой к форме. Тогда время жизни будет привязано к времени жизни формы. И если долго не обращаться, ТЗ может быть сериализована на диск. Тогда будет большой лаг при очередном обращении.
С такой проблемой не сталкивался, хотя были достаточно большие и таблицы и деревья. Большая это сколько? Вы замеряли время, с пустой таблицей быстро передает, с огромной таблицей медленно и есть прямая зависимость? Я очень сомневаюсь, что дело в этом. Там все достаточно оптимизировано, на сервер идут только измененные строки.
(2) Я тоже так думал и ранее не сталкивался с такими проблемами. Вообще таблица по высоте не большая, около 5000 тыс. строк, но вот колонок там более 400. Таблица строится динамически. Это довольно специфическая задача (планирование ресурсов). На форме клиент меняет данные. Потеря производительности происходит при вызове сервера. Замеры делал, разница более чем 10 раз, когда таблица почти пустая и когда она наполнена данными.
Дополнение: Сама таблица на форму не выведена, пользователю показывается все в табличном документе. изменение он тоже делает через таб. документ
Дополнение: Сама таблица на форму не выведена, пользователю показывается все в табличном документе. изменение он тоже делает через таб. документ
(5) Пробуйте как вариант таблицу значений хранить изначально не как реквизит формы , а как табличную часть объекта, который выведен на форму.
Его фактическое расположение естественно на сервере и он будет синхронизироваться после каждого изменения, возможно только в части измененных данных, не передавая весь объем...
Его фактическое расположение естественно на сервере и он будет синхронизироваться после каждого изменения, возможно только в части измененных данных, не передавая весь объем...
(9) Данный вариант не помог. Флаг "ИспользоватьВсегда" не понял вообще как работает, при снятии он не видит таблицу в серверной процедуре (&НаСервере)
Вот для наглядности сделал процедуры:
Замеры при пустой таблицы и заполненной данными :
Вот для наглядности сделал процедуры:
&НаКлиенте
Процедура ТестоваяКоманда(Команда)
ТестоваяКомандаСервер();
ТестоваяКомандаСерверБезКонтекста();
КонецПроцедуры
&НаСервере
Процедура ТестоваяКомандаСервер()
Счетчик = 1;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ТестоваяКомандаСерверБезКонтекста()
Счетчик = 1;
КонецПроцедуры
ПоказатьЗамеры при пустой таблицы и заполненной данными :
Прикрепленные файлы:
(19) Конечно, в ТекущемОбъекте таблица будет именно в том виде, в котором она записывается в ИБ. Но я подумал исходя из Вашего описания, что все необходимые данные, введенные пользователем, у Вас есть в табличном документе. Из него я и подразумевал заполнять ТекущийОбъект.
(20) Не совсем все. В ТЗ есть все данные. а в таб документе, только данные которые хочет видеть пользователь, т.е. у вас есть модель планирования (настраиваемая) в качестве разреза при планировании используются скажем Аналитика1, Аналитика2, Аналитика3 и показатели П1, П2, П3, и т.д.
При отрисовке таб. документа пользователь настраивает вид (структуру отчета) и например выбирает что он хочет видеть Аналитику1 и Аналитику2 и показатели. При этом аналитика3 в таб. документ не попадает. При построение таб. документа данные из ТЗ агрегируются (сумма, среднее, максимум и т.д.) по своим правилам и выводятся
При отрисовке таб. документа пользователь настраивает вид (структуру отчета) и например выбирает что он хочет видеть Аналитику1 и Аналитику2 и показатели. При этом аналитика3 в таб. документ не попадает. При построение таб. документа данные из ТЗ агрегируются (сумма, среднее, максимум и т.д.) по своим правилам и выводятся
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот