Gå til innhold

Anbefalte innlegg

Heisan

Jeg har noe slikt:

Select * 
from v_Contacts
where MSP_FiltrerType(v_Contacts.RecordTYPE) = 1

 

Jeg er ingen SQL programmerer, men all annen form for programmering gir slike logiske muligheter. Noen som kan fortell emeg hva jeg gjør feil?

 

Ser også at jeg kan skrive et kall til SP'er slik:

SP_SomeProc Parm1, Parm2

men uansett hvordan jeg putter dette inn så blir det feil

 

Ole

Lenke til kommentar
Videoannonse
Annonse

Men vær litt forsiktig med å bruke UDF i spørringer da de kan påvirker ytelsen negative, spesielt hvis en spørring som i utgangspunktet er set-basert blir record-basert. Dessuten ender du som ofte opp med index scans istedet for index seeks.

Med det mener jeg at SQL Server kan risikere å eksekvere UDFen en gang pr. rad og det kan få konsekvenser for ytelsen.

Merk at jeg sier kan, ikke vil fordi spørremotoren i SQL Server kan flette innholdet i UDFen inn i spørringen som den brukes i hvis det er snakk om en "Inline Table-valued Function".

 

Nå vet ikke jeg hva MSP_FiltrerType gjør, men basert på navnet gjetter jeg at hver kontakt har en type som er definert som en foreign key til en annen tabell som igjen har en kategori som du er ute etter å filtrere på.

Hvis dette stemmer så vil det være mye bedre å gjøre det om til et sety-basert spørring ved å joine kategoritabellen som brukes i UDFen.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...