Ma suggestion est la suivante :déplacez les requêtes de base de données en dehors de la boucle et verrouillez l'accès afin de ne pas effectuer de requêtes de base de données parallèles. Je pense que cela accélérera également les choses, car vous n'aurez pas d'accès parallèle au disque, tout en pouvant effectuer un traitement parallèle.
Signification (pseudo-code)db =connect to databasethreadlock =lock();
parfor {threadlock.lockresult =db query (tirez toutes les données ici, car vous ne pouvez pas traiter pendant que vous chargez sans garder la base de données verrouillée)thread.unlocktraitez les données résultantes (qui ne sont plus que des données et non un objet SQL). }