|
Реализация Pivot
|
|||
---|---|---|---|
#18+
Добрый день. Понадобилось сделать вот такую шутку. Есть 4 записи вида EntityIdAttributeIdValue1attr11|11attr21|22attr12|12attr22|2 Нужно получить 2 записи вида: EntityIdattr1attr211|11|222|12|2 Типичный объем данных - 100К сущностей с 20 атрибутами. В аттаче есть винформ проект. Прогнал тесты получил такие результаты: Сущностей: 100К Атрибутов у сущности: 20 Потребление памяти до 500 мб Время в сек БатчТест 1Тест 2Тест 375019.40919.57619.462100016.25815.88615.936250011.23411.18011.178500012.26812.25812.217750015.07316.36616.287 Есть 2 вопроса. Первый - стоит ли так делать? В качестве альтернативы смотрел PivotGrid от Devexpress. Отрисовал грид на этих данных за 37 секунд, съев 800 мегабайт памяти. В общем не плохо, но есть 2 проблемы. Первая - у меня сущность имеет еще часть параметров в обычном так скзать виде. Т.е. она имеет не только EntityId но и еще с десяток столбцов. Их нужно отобразить вместе с динамически сформированными столбцами по этому алгоритму. Пробовал для этого использовать Unbound Field и Unbound Field Expression и как-то не получилось у меня прилепить одно к другому Ну и вторая проблема, это то, что все это происходит на клиентской стороне где может быть далеко не новый селерон и 2 Гб оперативы. А так можно через 3-звенку на сервере сделать И второй вопрос, если по первому ответ что заниматься стоит, то можно ли еще как-то улучшить производительность? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 11:49 |
|
Реализация Pivot
|
|||
---|---|---|---|
#18+
Посмотрите в сторону OLAP-кубов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 17:47 |
|
|
start [/forum/topic.php?fid=20&msg=39603251&tid=1399488]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 152ms |
0 / 0 |