Олег
У вас не получится существенно ускорить работу этой обработки.
Позвольте с Вами не согласиться.
Во-первых одно левое соединение в один раз выполняемом запросе, вместо сотен а может и тысяч дерганий базы мелкими запросами в циклах - существенно быстрее будет работать.
А если еще и учесть, что запросы внутри циклов можно очистить от ненужного тормозящего мусора (СГРУППИРОВАТЬ ПО, ИТОГИ ПО ... ПЕРИОДАМИ), то можно еще больше ускорить.
Ну и если отсеивание результатов внести в сам запрос, то еще больше ускорение можно получить.
Всего, думаю, что минимум раза в 2-3 можно ускорить... А то и раз в 10, если на больших объемах данных.