Сбор данных C # v Поиск в базе данных - что является более эффективным? - PullRequest
2 голосов
/ 04 августа 2011

Мне было интересно, смогу ли я выбрать мозги сообщества ...

В проекте, над которым я работаю, необходимо найти значение из списка ключ-значение. Этот список не изменится в течение всего срока действия программного обеспечения. Скажем в качестве примера, список выглядит так:

ID       Name

1        Apple
2        Orange
3        Pear
4        Banana

... и т. Д.

Я рассматриваю два способа реализации этого. Первый - сохранить список в каком-то виде (пока не определились) набора данных C #, а затем при необходимости выполнить поиск нужного значения во время выполнения. Второй метод, который я рассматриваю, - это сохранение списка в таблице базы данных (SQL Server 2008, как вы и просили). Затем приложение может получить доступ к базе данных во время выполнения с помощью хранимой процедуры.

Поиск будет происходить дважды подряд после запроса, сделанного пользователем из веб-формы.

Мой вопрос таков: какой из этих двух методов будет наиболее эффективным с точки зрения времени обработки?

Я понимаю, что, возможно, нет однозначного ответа на этот вопрос, но я бы приветствовал любые комментарии или мысли.

Ответы [ 3 ]

3 голосов
/ 04 августа 2011

То, что дорого с точки зрения производительности, это обычно доступ к диску и доступ к сети.

, если у вас есть доступная коллекция в ОЗУ на веб-сервере или сервере приложений, это будет быстрее, чем запросбазы данных.

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

0 голосов
/ 04 августа 2011

Как вы утверждаете -

Этот список не будет меняться в течение всего срока службы программного обеспечения.

Я бы жестко запрограммировал этот список в программе.Это не стоит затрат на базу данных для списка, который никогда не изменится.

0 голосов
/ 04 августа 2011

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

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