Hej folkens,
Jeg synes det er underligt, men det vel skyldes at ske manglende
viden:
Jeg har et view, og så har jeg en user-defined function. Denne
funktion vil jeg gerne have til at indgå i mit view, til returnering
af en værdi.
Min funktion bliver kaldt med et produktionsID. Funktionen består af
en SUM af et felt, der indgår i to joinede tabeller.
Afvikler jeg jeg min funktion direkte ved kald med et ProduktionsID,
så får jeg returneret resultatet prompte.
Afvikler jeg mit view UDEN funktionen, returneres posterne prompte
(ca. 1500 poster).
Men indsætter jeg min funktion i mit view, ja så performer det ad h..
til. Vi snakker 30-40 sekunder. Hvorfor?
Funktionen ser således ud:
CREATE FUNCTION [dbo].[fnFejlAntal] (@ProduktionID int)
RETURNS int AS
--Returnerer summen af tblFejlAntal.Antal_Fejl via ProduktionID i
tblFejlliste
BEGIN
RETURN(
SELECT SUM(dbo.tblFejlantal.Antal_fejl) AS iAntal
FROM dbo.tblFejlantal INNER JOIN
dbo.tblFejlliste ON dbo.tblFejlantal.FejllisteID
= dbo.tblFejlliste.FejllisteID
WHERE tblFejlliste.ProduktionID=@ProduktionID
)
END
Mit view er en ordinær SELECT på to joinede tabeller (1-mange), med
hhv. 22.000 og 27.000 poster.
Any ideas?
mvh /Snedker
----------------
www.dbconsult.dk