我重写一些旧的存储过程,我已经使用功能,而不是内嵌代码时遇到意想不到的性能问题。
该函数为非常简单:
ALTER FUNCTION [dbo].[GetDateDifferenceInDays]
(
@first_date SMALLDATETIME,
@second_date SMALLDATETIME
)
RETURNS INT
AS
BEGIN
RETURN ABS(DATEDIFF(DAY, @first_date, @second_date))
END
所以,我有两个相同的查询,但有使用功能,另一种则在查询本身的计算:
ABS(DATEDIFF(DAY, [mytable].first_date, [mytable].second_date))
现在有了内嵌代码的查询运行比使用该函数的一个快3倍。