私の提案は次のとおりです。データベースクエリをループの外に移動し、アクセスをロックして、並列データベースクエリを実行しないようにします。並列処理を実行しながら、並列ディスクにアクセスできないため、処理速度も向上すると思います。
意味(擬似コード)db=データベースに接続するthreadlock=lock();
parfor {threadlock.lockresult =db query(データベースをロックしたままでロードしている間は処理できないため、ここですべてのデータをプルします)thread.unlockprocess結果のデータ(現在は単なるデータであり、SQLオブジェクトではありません)}
>