PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jaki jest właściwy sposób pracy z wynikami strumieniowania w wersji 3.0.0 i Postgresql?

„Właściwy sposób” przesyłania strumieniowego za pomocą Slick i Postgres obejmuje trzy rzeczy:

  1. Musisz użyć db.stream()

  2. Musisz wyłączyć autoCommit w sterowniku JDBC. Jednym ze sposobów jest uruchomienie zapytania w transakcji przez dodanie przyrostka .transactionally .

  3. Musisz ustawić fetchSize być czymś innym niż 0, w przeciwnym razie postgres przekaże cały zestaw wyników do klienta za jednym razem.

Np.:

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

Przydatne linki:

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

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę scalić rekordy w dwóch tablicach JSON?

  2. PSQLException:serwer zażądał uwierzytelniania opartego na hasłach, ale nie podano hasła

  3. PostgreSQL:kara wydajności za łączenie dwóch tabel w osobnych schematach

  4. Funkcja MAX() w PostgreSQL

  5. Jak utworzyć migrację rails, aby usunąć/zmienić precyzję i skalę dziesiętną?