ratata Skrevet 23. september 2008 Skrevet 23. september 2008 Skal lage ein stored procedure som akkumulerer ein verdi i ein tabell. Dette må antakeligvis skje med hjelp av ein cursor, noko eg skjønar heller lite av. Er det noko som kan forklare meg enkelt korleis cursoren fungerer, og kva som må gjerast for å addere ein verdi til variabelen? Brukar forøvrig TransactSQL.
j000rn Skrevet 23. september 2008 Skrevet 23. september 2008 Fortell heller hva du skal fram til, så kan vi hjelpe deg å lage en mye bedre løsning UTEN cursors. Bortsett fra det så finner du nok tusenvis av eksempler på cursors ved et enkelt google søk.
ratata Skrevet 23. september 2008 Forfatter Skrevet 23. september 2008 Poenget med oppgåva er nok at eg skal bruke cursors, problemet er at eg ikkje heilt skjønar kva som skjer. Det som skal skje er at eg skal akkumulerer ein int verdi i ein tabell. Er litt pes å forklare heile databasen, men kan legge ut ER diagram om du vil. Det eg lurar mest på er korleis ein adderer ein verdi til ein variabel.
j000rn Skrevet 23. september 2008 Skrevet 23. september 2008 Poenget med oppgåva er nok at eg skal bruke cursors, Da burde du besvare oppgaven med at cursors er noe søppel som man aldri/sjeldent bør bruke. http://www.google.no/search?q=cursor+sql+server Har du prøvd selv først? SELECT SUM(Blah) FROM EnTabell
ratata Skrevet 23. september 2008 Forfatter Skrevet 23. september 2008 haha, will do Sidan du er så godt i gang med å svara; kva er alternativet til ein cursor? Så vidt eg skjønar er vel poenget at ein skal gå igjennom tabellane på ein rask måte, altså utan å hente ut kvar tuppel...
Manfred Skrevet 23. september 2008 Skrevet 23. september 2008 haha, will do Sidan du er så godt i gang med å svara; kva er alternativet til ein cursor? Så vidt eg skjønar er vel poenget at ein skal gå igjennom tabellane på ein rask måte, altså utan å hente ut kvar tuppel... Haha... Jeg tror det kun er skoler som bruker ordet "tupler"
kaffenils Skrevet 24. september 2008 Skrevet 24. september 2008 (endret) haha, will do Sidan du er så godt i gang med å svara; kva er alternativet til ein cursor? Så vidt eg skjønar er vel poenget at ein skal gå igjennom tabellane på ein rask måte, altså utan å hente ut kvar tuppel... I 99,9% av tilfellene så er en vanlig set-basert spørring det raskeste. Som allerede forklart så er det raksere å skrive select sum(antall) from produkter enn å åpne en cursor som blar seg en og en rad og lagrer summen i en variabel. Dette bl.a. fordi 1) databaseserveren ikke trenger å bruke tid på å returnere hver eneste rad til deg, 2) den finner en optimal plan for å utføre spørringen, 3) sikkert flere ting, men det er tidlig på morgene enda. Men som du skjønner har du 0,1% hvor en cursor faktisk er raksere. Kommer ikke på noen gode eksempler akkurat nå, men har sett eksempler i enkelte bøker som består av å finne kompliserte dateranges, og disse er betydelig raskere med cursors. Edit: running sums vil mulgiens også være raskere ved bruk av cursor. Endret 24. september 2008 av kaffenils
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå