通常, 选择 标量函数的结果不会有多大伤害,但是通过它进行 过滤 可能很容易花费数百秒(虽然不一定)。
如果您需要按标量函数结果(WHERE col = dbo.scalar_function()
)进行过滤,通常可以帮助制作内联表值函数。它将返回其值作为结果表的唯一行。然后inner join
,您将对函数结果进行处理,并根据返回值进行有效过滤。之所以可行,是因为sql Server始终能够展开内联表值函数并将它们内联到调用查询中。
是否将使用Function来简化SQL查询的大量imapact性能?
通常, 选择 标量函数的结果不会有多大伤害,但是通过它进行 过滤 可能很容易花费数百秒(虽然不一定)。
如果您需要按标量函数结果(WHERE col = dbo.scalar_function()
)进行过滤,通常可以帮助制作内联表值函数。它将返回其值作为结果表的唯一行。然后inner join
,您将对函数结果进行处理,并根据返回值进行有效过滤。之所以可行,是因为sql Server始终能够展开内联表值函数并将它们内联到调用查询中。