とにかく、SQL Server 08 でこの恐ろしく非効率な UDF を最適化する方法はありますか?
更新:クエリの各行と各列で実行したい場合、このような関数に列を送信する必要がありますか? これについてもっと良い方法はありますか?
ありがとうございました
** @value(float) と @fieldname(varchar(40)) は入力パラメータです **
BEGIN
DECLARE @UT integer, @FRM integer, @TO integer, @FACTOR float
select @UT = [UF_UT_ID] FROM dbo.UNIT_FIELDS where [UF_FIELD]=@fieldName
select @FRM = [UT_UN_ID_INTERNAL_UNITS] from dbo.UNIT_TYPES where [UT_ID]=@UT
select @TO = [UT_UN_ID_DISPLAY_UNITS] from dbo.UNIT_TYPES where [UT_ID]=@UT
select @FACTOR = [UC_SLOPE] from dbo.UNIT_CONVERSIONS where [UC_UN_ID_UNIT_FROM]=@FRM and [UC_UN_ID_UNIT_TO]=@TO
-- Return the result of the function dbo.
RETURN @FACTOR*@value
END