19. januar 2009 - 19:37Der er
15 kommentarer og 1 løsning
Kald af SP tager lang tid
Hej
Jeg har en masse logik der tager ca. 2-4 sek at kalde. Da logikken skal kaldes fra tid til anden, har jeg lagt det i en SP. Kald af SP tager dog mere end 1 minut (stopper kaldet manuelt efter 1 min).
Der er meget der kan spille ind når du bruger en SP og meget svært at svare generelt på. Men men.... til at starte med som berglund spørger så, hvilken cursor type bruger du? Og hvordan med din SP? Er den lavet med recompile?
Jeg har fundet ud af det er erklaeringen af cursoren der tager laaaang tid. Jeg ved ikke hvor lang tid eftersom jeg aldrig har ladet den faerdiggoere erklaeringen. Det som det drejer sig om er:
DECLARE PartsCursor CURSOR FOR
"select saetning"
Hvis jeg smider "select saetning" over i en temporaer tabel, og laver cursoren herpaa, saa gaar det hurtigt og jeg er igen nede paa de 2-4 sekunder.
Jeg maa aerligt indroemme at jeg ikke ved om den er lavet med recompile. Den er ikke lavet med read only, det kunne vaere en mulighed.
Måske det er en deadlock, dvs. at læse/skrive rettigheder der sætter hinanden i skak. Man skal virkelig overveje typen af CURSOR hvis man man vil brugen den.
berglund og janus_007>> Jeg tror ikke det er muligt ikke at bruge en cursor, eftersom raekkerne er afhaengige af hinanden... Dvs, hvis en vaerdi er sat i forrige raekke, saa skal et flag saettes i denne raekke.
berglund>> Desvaerre har jeg allerede aendret koden til brug af tmp tabel, og kan derfor ikke vise den org. kode. Ikke desto mindre siger min logiske sans at det ikke har noget med deadlock at goere eftersom det jo virker uden brug af cursor... men der er maaske bare mig og min manglende viden.
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.