Как правильно использовать многопоточность в однотипных циклических операциях?
А почему вы не можете перейти на 1 запрос? Реально, так было бы проще.
Касаемо же многопоточности, то тут важно, чтобы провайдер поддерживал пул соединений (и использовал их, в вашем случае) и создавалось новое соединение для каждого потока.
Но, большого ускорения не будет, вы тут упретесь в размер пула соединений. Еще момент, сколько активных соединений поддерживает ваша БД. 
Вариант с многопоточным формированием отчета - это очень дорогой, как для БД, ресурсов , так и для железа и, повторюсь - будет куда лучше это делать через один запрос.
А почему вы не можете перейти на 1 запрос? Реально, так было бы проще.
Касаемо же многопоточности, то тут важно, чтобы провайдер поддерживал пул соединений (и использовал их, в вашем случае) и создавалось новое соединение для каждого потока.
Но, большого ускорения не будет, вы тут упретесь в размер пула соединений. Еще момент, сколько активных соединений поддерживает ваша БД. 
Вариант с многопоточным формированием отчета - это очень дорогой, как для БД, ресурсов , так и для железа и, повторюсь - будет куда лучше это делать через один запрос.