Более эффективный, чем Datatable - PullRequest
0 голосов
/ 20 июня 2011

У нас есть инструмент отчетности, который собирает большое количество записей. Иногда это может быть 1 миллион записей. Мы храним это в виде данных. Я хотел знать, есть ли лучший объект для хранения этого. Мне нужно было бы иметь возможность агрегировать данные различными способами.

Обновление: Да. Лично считаю, что не следует получать столько записей. Это не то направление, куда я хочу идти.

Также я использую Oracle

Обновление Обновление

Извините за задержку, но здесь всегда есть огонь, чтобы потушить. Основная проблема заключалась в том, что они исчерпали память и получили ошибки памяти. У них были проблемы с выпуском данных из памяти, а также с привязкой к данным. Я думаю, что я искал более легкий объект, который не занимал бы столько места.

Подумав немного больше, на самом деле не имеет никакого смысла собирать столько данных, сколько упомянул diagonalbatman. Более того, если у нас есть несколько человек, которые используют его для решения этих проблем. Как это будет в масштабе.

К сожалению, у меня есть начальник, который не слушает, и оффшорная команда, которая слишком склонна относиться к типу "да, сэр". Они сериализуют необработанные данные (в виде XML-файла) и выпускают необработанные данные Datatable, что, на мой взгляд, не очень хорошее направление.

@ diagonalbatman - Из любопытства, у вас есть пример этого

Ответы [ 3 ]

2 голосов
/ 20 июня 2011

Зачем вам нужно записывать 1 миллион записей в ваше приложение?

Не можете ли вы выполнить консолидацию / агрегирование отчетности в БД? Это позволит лучше использовать ресурсы БД (в конце концов, именно для этого и предназначена СУБД), тогда вы сможете сосредоточить свое приложение на работе с небольшими консолидированными наборами?

1 голос
/ 20 июня 2011

То, что вы хотите, это кубы данных. В зависимости от типа базы данных, которую вы имеете, вы должны посмотреть на создание некоторых кубов.

1 голос
/ 20 июня 2011

Я бы порекомендовал вам попробовать несколько вариантов для проверки, особенно в свете вашей необходимой способности агрегировать данные различными способами.

1) Может ли это быть агрегировано с помощью правильных запросов на стороне данных, этоВероятно, лучшее решение.

2) Если вы используете POCO, LINQ улучшит ваши текущие характеристики памяти и производительности.Позволяет ли LINQ выполнять агрегацию, которая вам необходима.

Измерьте характеристики, которые вам интересны, и попробуйте различные варианты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...