我有一个computed column
(函数)导致我的一个表非常慢(它的输出是我表中的一列。我认为这可能是我的函数中的一些逻辑语句。我将它们注释掉并返回一个名为'test'
.这仍然导致表变慢。我相信该SELECT
语句正在减慢函数。当我注释掉 select 语句时,一切都是樱桃。我认为我没有以正确的方式使用函数。
FUNCTION [dbo].[Pend_Type](@Suspense_ID int, @Loan_ID nvarchar(10),@Suspense_Date datetime, @Investor nvarchar(10))
RETURNS nvarchar(20)
AS
BEGIN
DECLARE @Closing_Date Datetime, @Paid_Date Datetime
DECLARE @pendtype nvarchar(20)
--This is the issue!!!!
SELECT @Closing_Date = Date_Closing, @Paid_Date = Date_Paid from TABLE where Loan_ID = @Loan_ID
SET @pendtype = 'test'
--commented out logic
RETURN @pendtype
END
更新:
我有另一个computed column
做类似的事情,并且是同一张表中的一列。这个跑得很快。任何人都看到为什么会这样?
Declare @yOrn AS nvarchar(1)
IF((Select count(suspense_ID) From TABLE where suspense_ID = @suspenseID) = 0)
SET @yOrn = 'N'
ELSE
SET @yOrn = 'Y'
RETURN @yOrn