提问人:Guitoux 提问时间:11/11/2023 更新时间:11/11/2023 访问量:79
为什么 SCHEMABIND 会大幅提高性能?
Why the drastic performance increase WITH SCHEMABIND?
问:
我正在运行一个复杂的查询,需要 10 分钟左右才能执行。
我追踪到一个定期调用的 UDF,并将 WITH SCHEMABINDING 添加到该函数中。现在,复杂的查询需要几秒钟才能运行,我不太明白为什么。谁能解释一下这种令人难以置信的性能提升从何而来?这个简单 UDF 的代码在下面,我经常使用它。
ALTER FUNCTION [dbo].[GetMaxBatch]()
RETURNS INT with SCHEMABINDING
AS
BEGIN
DECLARE @max_batch INT
SELECT @max_batch = max(batch) FROM dbo.map
RETURN @max_batch;
END;
由于 UDF 在会话中返回相同的值,因此我只是对该值进行了硬编码,并注意到运行得非常好。开始研究 UDF 本身并添加了模式绑定,这很有效。
答: 暂无答案
评论
SELECT