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

Jaký je správný způsob práce s výsledky streamování Slick 3.0.0 a Postgresql?

„Správný způsob“ streamování pomocí Slick a Postgres zahrnuje tři věci:

  1. Je nutné použít db.stream()

  2. Je nutné zakázat autoCommit v ovladači JDBC. Jedním ze způsobů je spuštění dotazu v transakci přidáním přípony .transactionally .

  3. Je nutné nastavit fetchSize být něco jiného než 0, jinak postgres pošle celou sadu výsledků klientovi najednou.

Příklad:

DB.stream(
  find(0L, 0L)
    .transactionally
    .withStatementParameters(fetchSize = 1000)
).foreach(println)

Užitečné odkazy:

https://github.com/slick/slick/issues/1038

https://github.com/slick/slick/issues/809



  1. Vložit do stejné tabulky spouštěč mysql

  2. Výjimka třídy připojení JAVA MySQL ClassNotFound

  3. SELECT WHERE IN (poddotaz) pomalu

  4. Kerberos na C# spravované připojení Oracle