Наборы данных C #, подкачка и большие объемы данных - PullRequest
3 голосов
/ 29 октября 2008

Я хочу показать большой объем данных в наборе данных, 100 000 записей около 10 столбцов, это потребляет большой объем оперативной памяти 700 МБ. Я также попытался использовать пейджинг, который уменьшает это примерно на 15-20%, но мне не очень нравятся кнопки «Предыдущая / Следующая», используемые при использовании пейджинга. Я не записываю данные на диск в настоящее время, я должен быть? Если да, то какой метод наиболее распространен? Данные не должны храниться вечно только во время их просмотра, тогда можно будет выполнить новый запрос и просмотреть еще 70 000 записей. Как лучше поступить?

Спасибо за совет.

Ответы [ 5 ]

2 голосов
/ 30 октября 2008

Реальность такова, что конечному пользователю редко нужно видеть всю совокупность своего набора данных, поэтому я хотел бы использовать тот метод, который вам нравится для представления данных (просмотр списка), и создать собственный пейджер, чтобы набор данных передавался только с помощью Результаты желаемого количества записей. В противном случае каждая загрузка страницы приведет к повторному вызову набора данных.

Метод XML для временного файла или использование временной таблицы, созданной с помощью хранимого процесса, являются альтернативами, но вы все равно должны просеять и представить данные.

1 голос
/ 30 октября 2008

Важный вопрос: откуда эти данные? Это поможет определить, какие варианты доступны для вас. Запись на диск будет работать, но, вероятно, это не лучший выбор по трем причинам:

  1. Как пользователь, я был бы весьма раздражен, если бы ваше приложение внезапно сжало 700 МБ дискового пространства без предупреждения. Но тогда я бы заметил такие вещи. Я полагаю, что многие пользователи не будут. Еще: много места.
  2. В зависимости от источника данных, даже первоначальная передача может занять больше времени, чем вы действительно хотите разрешить.
  3. Опять же, как пользователь, НЕТ НИКАКОГО ПУТИ, я вручную копаю данные на 700 Мб. Это означает, что вы почти наверняка никогда не должны показывать это. Вы хотите загружать только запрошенную страницу, одну (или пару) страниц за раз.
0 голосов
/ 30 октября 2008

реализовать подкачки в SQL , если вы хотите уменьшить объем памяти

0 голосов
/ 30 октября 2008

Это большой объем данных, с которыми можно работать и хранить их в памяти.

Это приложение ASP.NET? Или приложение для Windows?

Лично я обнаружил, что переход к пользовательской настройке пейджера (для контроля, перехода к предыдущим ссылкам) и подкачки на уровне базы данных - единственный возможный способ добиться максимальной производительности, получать только необходимые данные ...

0 голосов
/ 29 октября 2008

Я бы предложил файлы с отображением в памяти ... не уверен, что .NET пока что поддерживает его.

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