ich setze in den letzten Jahren zunehmen iterate() statt list() bei Hibernate-Queries ein,
mit nicht allzu genauer Zielvorstellung, aber ich laufe die Ergebnisse oft eh nur einmal durch, brauche keine 100.000er Liste,
wenigstens diese eingespart und vielleicht auch sonstwie weniger Last gleichzeitig im Speicher,
durchaus auch möglich dass mal nach wenigen Tausend abgebrochen wird,
-> falls der Rest schon in Rohdaten da ist, dann vielleicht zumindest nicht weiter aufbereitet…
aktuell fällt mir erstmals auf, dass bei einer Query, die 100 gemappte Entitys (statt berechneter Daten) lädt,
am Anfang die Ids und dann alle Einträge in einzelnen SQL-Queries geladen werden!
zum Glück war da die DB langsam, dauerte 5 sec statt 0.1sec, inzwischen Unterschied nicht mehr feststellbar,
aber ich nutze nun Statistics der SessionFactory, getPrepareStatementCount() deckt anscheinend zum Glück (als einziges) auch das interne SQL ab
gibt es Einstellungen, so dass in diesem Fall mehrere auf einmal geladen werden statt einzeln?
hibernate.jdbc.fetch_size usw. bewirken hier nichts?
wobei ich mit Abfrage aller Ids und dann neuen Queries zu je 10 einzeln angegebenen Ids auch nicht glücklich wäre…,
kann man das Verhalten anderer iterate-Queries mit nur 1x SQL auch für Entity-Queries erzwingen?
aus Gewohnheit vermeide ich meist eh in Auswertungen, Entitys zu laden, so dass Hibernate sie nicht hinsichlich Änderungen cacht/ prüfen muss usw.,
nur Nutzdaten in Dummy-Objekten, das wird dann hier auch helfen
jedenfalls aufzupassen, sonstige Anmerkungen/ Artikel in diesem Bereich?