Mit forslag er dette:Flyt databaseforespørgslerne uden for løkken, og lås adgangen, så du ikke laver parallelle databaseforespørgsler. Jeg tror, at det også vil fremskynde tingene, da du ikke vil have parallel diskadgang, mens du stadig er i stand til at udføre parallel behandling.
Betydning (pseudokode)db =opret forbindelse til databasetrådlås =lås();
parfor {threadlock.lockresult =db-forespørgsel (træk alle data her, da du ikke kan behandle, mens du indlæser uden at holde databasen låst)thread.unlockprocess resulterende data (som nu kun er data og ikke et sql-objekt).}