sql по сравнению с hashtable.containskey по сравнению с string.contains

У меня есть список значений, извлеченных из запроса SQL, чтобы узнать, если x, если значения присутствуют в нем.

SQL:
  -Select null from table where code='x'
  -resul.count>0

String:
  -Loop for concatenating the codes in one string
  -codesstring.Contains("x")

Hashtable:
  -Loop for adding the codes to the hashtable
  -codeshashtable.ContainsKey("x")

Список будет в тысячах диапазона... точит самый быстрый путь?

1
задан VSP 18 May 2010 в 11:56
поделиться

3 ответа

Возможно, я вас неправильно понял, но самым быстрым способом было бы просто получить сам счетчик:

select count(*) 
from MyTable 
where code = 'x'
0
ответ дан 3 September 2019 в 00:29
поделиться

Вы НЕ запрашиваете то же самое в запросах 1 и 2.

Строка будет

codestring.Equals ('x')

Зависит от того, что является самым быстрым. Цикл строки: нет

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

В противном случае напрямую в базу данных.

-1
ответ дан 3 September 2019 в 00:29
поделиться

Только SQL предотвратит передачу всего набора результатов из БД в ваше приложение. На этом этапе это зависит (немного) от того, как часто вы выполняете эти проверки.Если у вас есть много-много-много значений для проверки, я бы пошел с хеш-таблицей и кэшировал весь список в памяти.

Поиск строки будет плохой функцией в любом сценарии.

2
ответ дан 3 September 2019 в 00:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: