ratata Skrevet 23. september 2008 Del 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. Lenke til kommentar
j000rn Skrevet 23. september 2008 Del 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. Lenke til kommentar
ratata Skrevet 23. september 2008 Forfatter Del 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. Lenke til kommentar
j000rn Skrevet 23. september 2008 Del 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 Lenke til kommentar
Manfred Skrevet 23. september 2008 Del Skrevet 23. september 2008 Hva er egentlig galt med cursors? Lenke til kommentar
ratata Skrevet 23. september 2008 Forfatter Del 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... Lenke til kommentar
Manfred Skrevet 23. september 2008 Del 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" Lenke til kommentar
kaffenils Skrevet 24. september 2008 Del 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 Lenke til kommentar
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å