Я бы подумал, что проблема не в цикле, а в объемах данных.Кажется, что ваш метод цикла обрабатывает каждый бит данных только один раз, поэтому не происходит значительного сбоя в эффективности (например, циклическое повторение набора данных один раз, а затем снова для каждой строки или тому подобное).Любой метод, который вы выберете, в конце концов будет нуждаться в циклическом просмотре всех ваших данных.
Их методы могут быть немного более эффективными, чем ваши, но они не будут намного более важными, поэтому я 'я думаюЯ хотел бы посмотреть, можете ли вы выполнить какой-либо рефакторинг, чтобы уменьшить ваш набор данных (например, ограничить его определенным периодом или аналогичным), или можете ли вы выполнять поиск или агрегирование этого списка, который вы намереваетесь в базе данных, а не в коде.например, если вы просто собираетесь суммировать значения этого списка, то вы почти наверняка можете сделать это лучше, имея хранимую процедуру, которая будет выполнять суммирование в базе данных, а не в коде.
Я знаю этоЯ не ответил прямо на ваш вопрос, но это в основном потому, что я не знаю более эффективного метода.Я воспринял вопрос как просьбу об оптимизации в целом, а не о том, как это сделать.:)