|
![]() |
#1 |
Moderator
|
Ну это срабатывает для всяких тупых отчетов, с кучей удобств для пользователя. Там обычно временную таблицу заполняют в серверном классе (с кучей функциональности), а потом передают на клиентскую форму, в которой приделывают всякие группировки и суммирования с подитогами. Конечно - лучше бы все это делать в каком-нить OLAPе, но это не всегда возможно, да и партнерские программисты зачастую просто не владеют OLAPом этим. И если нужно быстро подоптимизировать чужой кривой код, то трюк с передачей временных таблиц через контейнер, иногда заметно понижает время отклика...
|
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от fed
![]() Ну это срабатывает для всяких тупых отчетов, с кучей удобств для пользователя. Там обычно временную таблицу заполняют в серверном классе (с кучей функциональности), а потом передают на клиентскую форму, в которой приделывают всякие группировки и суммирования с подитогами. Конечно - лучше бы все это делать в каком-нить OLAPе, но это не всегда возможно, да и партнерские программисты зачастую просто не владеют OLAPом этим. И если нужно быстро подоптимизировать чужой кривой код, то трюк с передачей временных таблиц через контейнер, иногда заметно понижает время отклика...
Я правильно понимаю, что речь идет о выводе данных на стороне клиента (через запросы с группировками)?
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#3 |
Moderator
|
Правильно. Не - ты не думай, я сам такой хрени стараюсь не писать. Но бывает что малограмотные программисты какой-то отчет сбацали и надо его быстренько привести в чуство. В этой ситуации помогает выкидывание логики сбора данных в серверный класс, а затем перекачка данных между тиерами исполнения через контейнер. Конечно мегаускорения это не дает, но время от времени подтормаживания убирает.
|
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от fed
![]() Правильно. Не - ты не думай, я сам такой хрени стараюсь не писать. Но бывает что малограмотные программисты какой-то отчет сбацали и надо его быстренько привести в чуство. В этой ситуации помогает выкидывание логики сбора данных в серверный класс, а затем перекачка данных между тиерами исполнения через контейнер. Конечно мегаускорения это не дает, но время от времени подтормаживания убирает.
__________________
Axapta v.3.0 sp5 kr2 |
|
![]() |
#5 |
Moderator
|
Цитата:
Сообщение от AndyD
![]() Не понятно, зачем в этом случае надо передавать таблицу целиком на клиента? Почему нельзя запрос выполнить для серверного курсора и его же вывести в гриде или где он там используется? Сервер сам по себе шустрее клиентского компа, да и передаваться будут уже агрегированные данные. Опять же, не забываем об клиентском кэшировании на датасорсах
|
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от fed
![]() Ну это срабатывает для всяких тупых отчетов, с кучей удобств для пользователя. Там обычно временную таблицу заполняют в серверном классе (с кучей функциональности), а потом передают на клиентскую форму, в которой приделывают всякие группировки и суммирования с подитогами. Конечно - лучше бы все это делать в каком-нить OLAPе, но это не всегда возможно, да и партнерские программисты зачастую просто не владеют OLAPом этим. И если нужно быстро подоптимизировать чужой кривой код, то трюк с передачей временных таблиц через контейнер, иногда заметно понижает время отклика...
![]() От предложенной версии OLAP и/или SSRS заказчик отказался ((( Также тестировал передачу записи по одной (вместо контейнера) - общее время примерно то же самое (5 мин для 100тыс записей). Похоже все-таки это не один вызов RPC, а та же самая куча... Также пробовал сериализовать в XML - траффик растет примерно раз в 10 + много времени тратится на сериализацию-десериализацию (для тех же 100 тыс. было около 15 мин, если не ошибаюсь) |
|