2010-12-12 2 views
0

В веб-приложении я должен выбрать ~ 1 миллион строк из представления SQL. Эти миллионы строк затем используются для отображения гистограммы с функциями сверления.Какой самый быстрый сбор данных?

Я собираю все данные за один раз и позволяю пользователю развернуть данные, хранящиеся в памяти.

Я использую ADO.Net (SqlCommand) для получения данных из базы данных.

Как хранить данные в коллекции данных, обеспечивающие быстрый доступ к данным? Является ли DataTable лучше или SqlReader или массивом или списком? Пожалуйста, предложите

+1

Звучит как идеальный кандидат для собственного бенчмаркинга. – Oded

+1

Значение, придумайте тест и запустите его на разных типах коллекций, которые вы планируете получить для некоторых показателей. Скорость зависит от того, как вы получаете доступ к данным и другим деталям, зависящим от конкретного алгоритма. –

+1

Если вам нужно получить доступ к 1 миллиону строк из памяти, тогда самая быстрая структура данных будет использоваться в зависимости от шаблонов доступа в вашем коде - то есть, как вам нужно получить доступ к данным? Без этой информации трудно ответить на вопрос. –

ответ

1

Зачем вам нужно пропустить пользователя через записи ~ 1M?

Как правило, вы должны получить нефильтрованный набор данных, если пользователь должен увидеть все это сразу и развернуться в пользовательском интерфейсе. Тем не менее, с таким количеством записей, нет никакого способа, чтобы они могли взять весь набор, если, возможно, вы не показываете их графически, например ГИС или другие графические точки данных.

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

SQL-сервер очень хорошо справляется с этим типом операции. Пусть ваши инвестиции будут работать на вас.

+0

Спасибо, я собираюсь с этим решением. Единственная проблема заключается в том, что я открываю и закрываю соединение с базой данных, а затем каждый раз вызываю хранимую процедуру. Это замедляет работу приложения, так как это довольно дорогостоящая задача. Какие-либо предложения? – InfoLearner

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