sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad er den rigtige måde at arbejde med slicks 3.0.0 streaming resultater og Postgresql på?

Den "rigtige måde" at streame med Slick og Postgres omfatter tre ting:

  1. Skal bruge db.stream()

  2. Skal deaktivere autoCommit i JDBC-driver. En måde er at få forespørgslen til at køre i en transaktion ved at tilføje .transactionally .

  3. Skal indstille fetchSize at være noget andet end 0, ellers vil postgres skubbe hele resultatsættet til klienten på én gang.

Eks:

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

Nyttige links:

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

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



  1. Hvordan kan jeg overføre en række værdier til min lagrede procedure?

  2. Sådan undgår du ORA-04091-fejl i en trigger

  3. Dynamiske variabelnavne i MySQL

  4. Sådan vælger du enheder ved at kalde en lagret procedure med Spring Data