sql >> Database >  >> RDS >> PostgreSQL

Transactie kan geen parallelle opdrachten verwerken via Task.WhenAll

Er is hier niets magisch, u krijgt de foutmelding omdat de verbinding die u gebruikt bij het invoegen van CompanyAddress niet degene is die u denkt dat het is.

Het is een nieuwe verbinding. Wanneer ComapnyPaymentInfo insert wordt uitgevoerd, gebruikt u de verbinding die al aan uw transactie is gekoppeld. Het wacht op nieuwe commando's omdat je in de vorige stap hebt gewacht.

Het gebruik van Task.WhenAll() aan de andere kant zal proberen om meerdere threads te gebruiken. Als een verbinding bezig is met het uitvoeren van een opdracht, wordt deze niet gebruikt en wordt er een nieuwe gemaakt.

Onthoud dat wanneer je Transacties gebruikt, je maar één verbinding beschikbaar hebt, je kunt niet profiteren van parallellisme.




  1. Hoe u uw ProxySQL kunt bewaken met Prometheus en ClusterControl

  2. Waarde ophalen op basis van het maximum van een andere kolom gegroepeerd op een andere kolom

  3. hoe te importeren uit MS Excel in MYSQL DB

  4. Wat doet ::in PostgreSQL?