Avatar billede svarrenabe Nybegynder
21. januar 2008 - 11:01 Der er 3 kommentarer og
1 løsning

Langsom SP, hurtig funktion? hvorfor?

Vi sidder med en database hvor vi tilgår en række views fra en extern leverandør, og vi kan ikke tilgå tabellerne direkte. Når vi laver kode der henter data i disse views med:
select x,y
from ViewX
where z = valueX

Kommer dataene med det samme, så langt så godt...

Samme kode kopieres så over i en Stored procedure med indgangsparametre til de variable der bruges.

Så tager koden pludseligt en faktor 100 - 500 længere tid?
Hvorfor?

Hvis koden derimod ligges i en funktion ruller det lige så hurtigt som i min oprindelige querey? Jeg efterlyser en forklaring, og hvis der findes en metode(som er lettere end at skrive samtlige SPer om til funktioner) til at omgå dette vil jeg/vi meget gerne have en ide til dette.

Der arbejdes på en SQL 2005 server.

På forhånd tak

/Jonas
Avatar billede hrc Mester
21. januar 2008 - 22:30 #1
Prøv at læse dette link: http://searchsqlserver.techtarget.com/tip/1,289483,sid87_gci1063700,00.html

Sådan som jeg forstår de to så er SP'erne nogle der modificerer tabeller og evt. returnerer status, samt enkelte variable. En funktion er beregnet til at returnere et datasæt - og derfor yder den sandsynligvis også bedre. Men jeg kan have misforstået.

Det trækker ned at en SP er prekompileret mens en UDF oversættes fra gang til gang.

Som artiklen skriver er den rette fremgangsmåde et spørgsmål om at prøve sig frem.
Avatar billede janus_007 Nybegynder
26. januar 2008 - 22:37 #2
her svarrenable

Jeg kender godt til problemet, prøv at poste din kode her. Evt. noget af det simpleste eller blot en test som opfører sig på samme måde, så kan vi tale udfra det.
Avatar billede svarrenabe Nybegynder
17. april 2008 - 08:48 #3
Jeg havde glemt denne....
Jeg har ikke haft tid til at følge op på det, så jeg vil lukke tråden, en af de to der har været aktive kan bare smide et svar. Jeg har stadig problemet, og vil stadig gerne have en forklaring på forskellen mellem SP og funktion, når der tales om afviklingstid.
Avatar billede svarrenabe Nybegynder
15. maj 2008 - 13:57 #4
Intet svar modtaget, jeg lukker
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