用戶定義函數用於存儲過程。用戶定義函數返回標量值。用戶定義函數中使用的邏輯如下如何修復SQL Server 2005中的用戶定義函數標量值性能問題?
CREATE FUNCTION [dbo].[udf_Test] (@Code varchar(10), )
RETURNS bit AS
BEGIN
DECLARE @bFlag bit
SELECT @bFlag = COUNT(id)
FROM tbL1
WHERE Code = @Code
IF @bFlag = 0
BEGIN
SELECT @bFlag = COUNT(id)
FROM tbl2
WHERE LTRIM(RTRIM(Code)) = @Code
END
IF @bFlag = 0
BEGIN
SELECT @bFlag = COUNT(id)
FROM tbl3
WHERE LTRIM(RTRIM(Code)) = @Code
END
IF @bFlag = 0
BEGIN
SELECT @bFlag = COUNT(id)
FROM tbl4
WHERE LTRIM(RTRIM(Code)) = @Code
END
RETURN @bFlag
這是正確的方法來提高上述用戶定義函數的性能嗎?
既然你只返回一個開/關位,你如果有一個或多個記錄滿足條件的唯一感興趣嗎? – 2010-12-01 17:12:20
這是誤用時的性能問題。喜歡這個。 – gbn 2010-12-01 17:34:38