Avatar billede madiedk Nybegynder
14. maj 2010 - 17:01 Der 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?
Avatar billede arne_v Ekspert
14. maj 2010 - 17:15 #1
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.
Avatar billede arne_v Ekspert
14. maj 2010 - 17:17 #2
Det var det generelle svar. For en specifik database og en specifik version af databasen vil en guru DBA kunne kvantificere lidt mere.

Jeg er ikke en guru DBA. Ikke paa Oracle 11g. Ikke paa nogen anden database.

Jeg vil generelt fraraade at skrive Java apps, saa de kun performer fornuftigt paa en specifik database og version.
Avatar billede arne_v Ekspert
13. juni 2010 - 04:07 #3
OK ?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester