Avatar billede kegel Nybegynder
22. oktober 2001 - 10:37 Der er 1 løsning

Hvorfor brug cursor? - måling af performance forskelle mellem løsninger.


Jeg har følgende situation:

cursor cur_resultSet( pnkeyfield number) is
          select decode(sum(facility.am_grantdkk), NULL, 0, sum(facility.am_grantdkk))
          from  ds_facility facility
          where  facility.produktid = pnkeyfield;


Nuvel jeg åbner cursoren m.m. Ingen problem, men hvad er egentlig hurtigt (og hvordan kan jeg måle forskellen)?: Ovenstående defineret som cursor eller en alm. select sætning?


Spørgsmålet er egentlig afført af at jeg allerede har lavet en række procedure/funktioner vha af ovenstående konstruktion. En af mine kollegaer mener det tager længere tid og bruger mere memory. Men mig bekendt er der altid involveret en cursor - eksplicit eller implicit.
Avatar billede teepee Nybegynder
22. oktober 2001 - 11:13 #1
Performance er måske ikke altid lige hovedårsagen, idet at en cursor kan indeholde mere end én række og dermed ikke fejler ved søgninger på andet end unikke nøgler. Som hovedregel tror jeg roligt at du kan undlade cursoren, hvis du ved at søgningen kun finder én række, men du kan have ret i at Oracle implicit selv laver en slags cursor hvis du blot laver en select...into...statement.

Måle, tjah du kan måske lave en c-stump der giver dig tidspunktet med millisekunder, for Oracle\'s hele sekunder er jo nok ikke så meget værd i denne situation.
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