Ваш вопрос очень широкий, и метод PerformStuff()
будет в корне медленным, потому что требуется O(n) * db_lookup_time
до следующей итерации вывода. Так что, мне кажется, вы решаете эту проблему неправильно.
Языки запросов к базе данных созданы для оптимизации прохождения данных. Таким образом, итерация по идентификатору, а затем проверка значений позволяет обойти это самое медленное время поиска .
Вместо , используйте мощный язык запросов SQL и используйте такие предложения, как where id < 10 and value > 100
, потому что вы в конечном итоге хотите ограничить размер набора данных , необходимого для обработки в C #.
Итак:
- Чтение просто наименьшее количество данных, которое вам нужно из БД
- Обработать эти данные как единое целое, параллелизм может помочь.
- Записывать изменения в одном подключении к БД.
Надеюсь, это направит вас в правильном направлении.