gpt4 book ai didi

SQL Server - 条件语句的查询执行计划

转载 作者:行者123 更新时间:2023-12-02 02:38:23 26 4
gpt4 key购买 nike

条件语句(如 IF ... ELSE)如何影响 SQL Server(2005 及更高版本)中的查询执行计划?

条件语句会导致执行计划不佳吗?在考虑性能时是否需要警惕任何形式的条件语句?

** 编辑添加 ** :

我特指缓存的查询执行计划。例如,在下面的实例中缓存查询执行计划时,是否为条件的每个结果缓存了两个执行计划?

DECLARE @condition BIT

IF @condition = 1
BEGIN
SELECT * from ...
END
ELSE
BEGIN
SELECT * from ..
END

最佳答案

您将经常使用这种方法重新编译计划。我通常会尝试将它们分开,所以您最终会得到:

DECLARE @condition BIT

IF @condition = 1
BEGIN
EXEC MyProc1
END
ELSE
BEGIN
EXEC MyProc2
END

这样对最终用户来说没有区别,MyProc1 和 2 得到他们自己的、适当的缓存执行计划。一个过程,一个查询。

关于SQL Server - 条件语句的查询执行计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/289625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com