Hallo,
ich habe folgende Funktion auf einem MS-SQL 2000 Server erzeugt:
CREATE FUNCTION DBO.fn_NullValue
(@Value FLOAT, @Default FLOAT)
RETURNS FLOAT
AS
/*
Beispiel:
DECLARE @Value MONEY
DECLARE @Default MONEY
SET @Value = null
SET @Default = 1
SELECT DBO.fn_NullValue(@Value, @Default) AS Ergebniss
*/
BEGIN
DECLARE @Ergebniss AS FLOAT
SET @Ergebniss = @Default
IF (@Value IS NOT NULL)
BEGIN
SET @Ergebniss = @Value
END
RETURN @Ergebniss
END
Diese Funktion wird in einem SELECT-Statement verwendet:
SELECT MK.DatumEinzug, MK.Kaution, DBO.fn_NullValue(MK.Verzinsung, 0) AS Verzinsung
FROM ....
Ausführungszeit 1 min 25 sec
ohne diese Funktion:
SELECT MK.DatumEinzug, MK.Kaution, MK.Verzinsung
FROM ....
Ausführungszeit 7 sec
Den Test habe ich auch auf einem anderen Server probiert, der Unterschied ist fast identisch
wieso um Gottes Willen braucht diese sehr einfache Funktion so lange ?????
ich habe folgende Funktion auf einem MS-SQL 2000 Server erzeugt:
CREATE FUNCTION DBO.fn_NullValue
(@Value FLOAT, @Default FLOAT)
RETURNS FLOAT
AS
/*
Beispiel:
DECLARE @Value MONEY
DECLARE @Default MONEY
SET @Value = null
SET @Default = 1
SELECT DBO.fn_NullValue(@Value, @Default) AS Ergebniss
*/
BEGIN
DECLARE @Ergebniss AS FLOAT
SET @Ergebniss = @Default
IF (@Value IS NOT NULL)
BEGIN
SET @Ergebniss = @Value
END
RETURN @Ergebniss
END
Diese Funktion wird in einem SELECT-Statement verwendet:
SELECT MK.DatumEinzug, MK.Kaution, DBO.fn_NullValue(MK.Verzinsung, 0) AS Verzinsung
FROM ....
Ausführungszeit 1 min 25 sec
ohne diese Funktion:
SELECT MK.DatumEinzug, MK.Kaution, MK.Verzinsung
FROM ....
Ausführungszeit 7 sec
Den Test habe ich auch auf einem anderen Server probiert, der Unterschied ist fast identisch
wieso um Gottes Willen braucht diese sehr einfache Funktion so lange ?????
Comment