sql >> Databáze >  >> RDS >> PostgreSQL

Transakce nezvládá paralelní příkazy přes Task.WhenAll

Není zde nic magického, dostanete chybu, protože připojení, které používáte při vkládání CompanyAddress, není takové, jaké si myslíte.

Je to nové spojení. Když je spuštěna vložka ComapnyPaymentInfo, používáte připojení, které je již spojeno s vaší transakcí. Čeká na nové příkazy, protože jste čekali v předchozím kroku.

Na druhé straně použití Task.WhenAll() se pokusí použít více vláken. Pokud je připojení zaneprázdněné prováděním příkazu, nebude použito a vytvoří se nový.

Pamatujte, že při používání Transactions máte k dispozici pouze jedno připojení, nemůžete těžit z paralelismu.




  1. Změna řazení serveru SQL Server na velikost nerozlišující velká a malá písmena?

  2. Scala &Play! &Automatické zvýšení Slick &PostgreSQL

  3. Funkce NLSSORT() v Oracle

  4. Sebeodkazování ManyToMany Typ vztahuORM