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.
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.
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.