Что использовать для сетки данных с большим количеством данных? - PullRequest
3 голосов
/ 19 октября 2010

Нашел этот интересный вопрос для интервью:

Вам необходимо отобразить данные о продажах вашего подразделения за последние 5 лет в DataGrid в веб-форме. Производительность очень важна. Какую стратегию лучше всего использовать при получении данных?

  • а) Использование объекта DataReader для извлечения данные для DataGrid.
  • б) Используйте объект DataSet для получения данные для DataGrid.
  • в) Используйте простое выражение выбора как источник данных для DataGrid.
  • d) Использовать кэшированный файл XML в качестве данных источник и получить данные с DataSet.

Мой ответ с) но я не слишком уверен Может кто-нибудь указать мне правильный ответ и объяснить мне, пожалуйста Спасибо

Ответы [ 4 ]

3 голосов
/ 19 октября 2010

Я бы использовал пейджинг .

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

1 голос
/ 19 октября 2010

Я бы, вероятно, сказал вариант А из предоставленных ответов, но подкачка, безусловно, более правильный ответ. DataSets работают медленно и загружают всю таблицу, тогда как DataReader работает очень быстро, просто перебирая записи.

Использование оператора выбора в качестве источника данных - это просто плохая практика и никогда не рекомендуется.

1 голос
/ 19 октября 2010

Практически каждый раз, когда в тесте упоминается производительность, а также DataReader и DataSet, эмпирическое правило: DataReader == быстро и DataSet == медленно.

0 голосов
/ 19 октября 2010
  1. Если производительность очень важна, не используйте сетку данных, используйте ретранслятор или обычный цикл.
  2. Я бы предположил, что кэшированный файл XML (memomry) быстрее, чем извлечение данных из базы данных, НО также может использовать значительный объем памяти, поэтому я думаю, что это неправильный ответ.
  3. Оператор выбора и DataReader очень похожи, но у вас есть еще несколько готовых функций с DataReader, так что это мой ответ.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...