15. februar 2007 - 07:54Der er
7 kommentarer og 1 løsning
Delvist database udtræk
Jeg skal lave et komplet udtræk fra en tabel i en database med 800.000 rækker og herefter behandle hver enkelt element. Men jeg vil helst undgå at hente alle 800.000 rækker ind i JVM'en. I stedet vil jeg gerne have databasen til at opbevare en pointer til, hvor i min udsøgning jeg er nået til fx. jeg henter 10.000 rækker ind i java, behandler dem, og requester næste portion á 10.000 rækker indtil alle er behandlet.
En normal query som returnerer et normalt ResultSet vil for de fleste databaser goere det du oensker - din kode laeser en raekke af gangen - JDBC driveren har en buffer paa 10 eller 100 raekker som din kode laeser fra og naar bufferen er tom laeser den en ny klump fra databasen.
Hvis du fortaeller JDBC driveren at du vil kunne laese baglaens i ResultSet og ikke kun fremad, saa vil JDBC driveren nok forsoege at cache alle raekker i memory. Men det kan man jo lade vaere med.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.