2014-09-22 2 views
1

Я использую C# DataTable для хранения около 100 миллионов записей. но после хранения 16 миллионов он выбрасывает исключение »из памяти«Магазин Более 100 миллионов записей в памяти C#

Итак, можно ли хранить столичную запись в C# datatable или у нас есть другая альтернатива для этого.

После хранения данных, которые я хочу выполнить некоторые запросы LINQ по этим данным.

Просьба предоставить мне решение

+1

http://stackoverflow.com/questions/4040523/total-rows-that-we-can-add-to-datatable –

+1

В чем смысл иметь 100 миллионов записей в памяти? Для меня это не имеет большого значения. Откуда вы получаете данные? Почему вы не можете выполнять запросы Linq (для фильтрации) из самого источника данных (DB, file или whatver)? –

+1

Из интереса, насколько велика каждая запись и сколько у вас памяти? Даже без ограничения DataTable, если у вас есть 100 миллионов записей, и каждая из них имеет строку с 20 символами, с накладными расходами объекта DataRow и т. Д. Я бы все же ожидал, что это будет * не менее * 100 байт в строке и поэтому 10GB. Зачем вам нужна вся ваша база данных в памяти? –

ответ

1

Максимальное количество строк, что DataTable магазин может это 16777216.

Найдено по http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx

Alternate есть Использование набора данных. Создайте базу данных после каждой записи 16 миллионов и добавьте ее в набор данных.

+0

Да, я знаю, что ... но есть ли у нас альтернатива для этого ???? – cpVariyani

+0

используйте набор данных и создайте новый datatable после каждого 16-миллионного записи –

+0

Это не выполнит мою потребность ... поскольку мне нужны все записи в одном списке или в одной коллекции. – cpVariyani

Смежные вопросы