14. maj 2010 - 17:01Der er
2 kommentarer og 1 løsning
Resultset location
Hej
Hvis jeg henter et resultset med 40000 rækker fra en oracle database via et java program, hvis jeg så efter at have hentet halvdelen af rækkerne, venter med at hente de sidste 20000 rækkerne. Vil database så bruge en masse ressourcer på at "gemme" rækkerne og hvordan gør den det? har det noget med cursor location eller er det noget helt andet?
Generelt ved at pause med i laesning af ResultSet vil man forvente at databasen ikke vil gemme alle de manglende raekker i memory, men at databasen kun vil gemme kontekst (connection og hvor langt den var kommet til samt en mindre buffer med raekker). Det er et noget mer beskedent memory forbrug.
Jeg vil vaere mere bekymret over effekten paa transktioner. Hvis du koerer med et hoejt transaktiosniveau skal databasen enten laase eller koere paa et oejebliks billede fra transaktions start (Oracle goer det sidste). Det tror jeg koster mere i overall performance end memory forbruget.
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.