sql >> Databáze >  >> RDS >> Oracle

Co a kdy mám zadat setFetchSize()?

Tuto stránku byste si měli přečíst z oficiálních dokumentů o sadách výsledků . Říká to

Ve výchozím nastavení jsou sady výsledků zcela načteny a uloženy do paměti. Ve většině případů se jedná o nejefektivnější způsob provozu a vzhledem k návrhu síťového protokolu MySQL je snadnější implementovat. Pokud pracujete s ResultSets, které mají velký počet řádků nebo velké hodnoty, a nemůžete ve svém JVM alokovat haldu pro požadovanou paměť, můžete ovladači sdělit, aby streamoval výsledky zpět po jednom řádku.

stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,
                            java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);

Kombinace sady výsledků pouze pro předávání a pouze pro čtení s velikostí načtení Integer.MIN_VALUE slouží jako signál ovladači, aby streamoval sady výsledků řádek po řádku. Poté budou všechny sady výsledků vytvořené pomocí příkazu načteny řádek po řádku.

Ve skutečnosti nastavení pouze fetchSize nemá žádný vliv na implementaci konektoru-j.



  1. Jak mohu rozdělit dlouhý, jeden SQLiteOpenHelper do několika tříd, jednu pro každou tabulku

  2. Podmíněný počet SQL

  3. Nemohu získat svůj přihlašovací formulář pro správné připojení k databázi mySQL

  4. Jak nastavit pondělí jako první den v týdnu na SQL Server