Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Базы данных под .NET > Какой из поисков быстрее? |
Автор: Darkmaster 25.10.2007, 13:29 | ||
Возник такой вопросик, в локальной БД после отправи письма нужно проверить является ли email на который отправлено письмо email'ом клиента в базе. Так вот возник вопрос что лучше для этого использовать? Пока есть два варианта: в первом все адреса на которые только что было отправлено пиьсмо перебираются циклом for в котором есть foreach проходящий по всей базе и сравнвающий нынешний email с теми что есть в базе:
Второй способ воспользоваться datatabl1.Select(запрос), так вот хотелоь бы узнать что быстрее, имеет ли смысл вообще это искать а также как можно замерить. Визуально особой разницы в скорости нет, но тем не менее... |
Автор: Wanderer2019 25.10.2007, 13:32 |
Напиши хранимую процедуру, в которую передавался бы этот адресс и она возвращала бы да или нет. |
Автор: Zapozidon 25.10.2007, 19:27 | ||
Проверить - поставить замер времени перед и после выполнения, но результат может быть неоднозначный. Разница скорее всего будет маленькая при небольших данных. Глобально же посоветовал бы следущее: в строчке кода
осуществляются операции ToString(), соответственно, вылезут новые объекты, которые будет хавать сборщик мусора. А как уже устроен DataTable.Select - вопрос, но наверняка такого не будет. В случае если у Вас в dataTable1.Rows хранится миллион объектов, тогда будет лишних миллион строчек. Во втором случае скорее всего такого не будет (все опять же упирается в реализацию метода Select, но я верю в Microsoft, так пролабанить они не могут ![]() |