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

2024-02-18

条件语句(例如如果别的)影响 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 可以获得自己的、正确的缓存执行计划。一个过程,一个查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server - 条件语句的查询执行计划 的相关文章

  • Angularjs 在生产中禁用调试数据

    我正在尝试按照角度文档中的建议禁用生产服务器中的调试数据here https docs angularjs org guide production 补充一点 我并没有真正看到性能和加载时间有任何改进 这是我的代码在 app js 中的样子
  • 查找一列中具有相同值而另一列中具有其他值的行?

    我有一个 PostgreSQL 数据库 将用户存储在users他们参与的表格和对话conversation桌子 由于每个用户可以参与多个对话 并且每个对话可以涉及多个用户 因此我有一个conversation user链接表来跟踪哪些用户正
  • HTML if 语句在 CDN 失败时加载本地 JS/CSS

    当从 CDN 或任何外部服务器加载 CSS JS 文件时 有可能 即使概率很低 由于外部故障而丢失该文件 在这种情况下 html 页面将因缺乏适当的 CSS 和 JS 而被损坏 有没有一种实用的方法可以在 CDN 故障时加载本地版本 IF
  • SQL Server 数据库中的表具有互斥外键的最佳实践

    在这里 我正在寻找针对以下问题的优缺点的最佳解决方案 Entity1 E1 pk 与其他不同的列 Entity2 E2 pk 与其他不同的列 Entity3 E3 pk 与其他不同的列 我需要创建之间的关系Entity1 and Entit
  • SQL Server - 在设置 COLLATE Latin1_General_CS_AS 的情况下搜索不区分大小写

    家长提问 https stackoverflow com questions 50974562 sql server update to match and replace only exact words感谢 Iamdave 部分问题得到
  • LINQ 函数的顺序重要吗?

    基本上 正如问题所述 LINQ 函数的顺序是否重要 表现 显然 结果仍然必须相同 Example myCollection OrderBy item gt item CreatedDate Where item gt item Code g
  • Access SQL 查询:查找表中每个不同条目的最新日期行

    All 我确信这是一个非常简单的 SQL 查询问题 但我确信有一个很好的方法 也有一个非常糟糕的方法来做到这一点 如果由我自己决定 我很可能会得到后者 所以 我在 Access 中有一个表 其中的数据如下所示 ID Value As of
  • 当我尝试连接到数据库时收到“错误:无法初始化 OLE”? C#

    我正在尝试通过 C 连接到数据库 但这样做时收到一条非常无用的错误消息 08 44 17 错误 无法初始化 OLE 08 44 17 错误 无法初始化 OLE 我尝试寻找解决方案 但没有成功 我也尝试重新启动计算机 但这也没有帮助 我正在运
  • 为什么我的空循环在 Intel Skylake CPU 上作为函数调用时运行速度是原来的两倍?

    我正在运行一些测试来比较 C 和 Java 并遇到了一些有趣的事情 在 main 调用的函数中 而不是在 main 本身中 运行具有优化级别 1 O1 的完全相同的基准代码 导致性能大约翻倍 我正在打印 test t 的大小 以毫无疑问地验
  • SQL,帮助进行有关用户年龄的小查询

    我有一个包含注册用户的表 其中我将年份保存为 varchar 值 只是因为我只花了一年 我想创建包含年龄的饼图 以显示哪些用户更有可能注册 下面的查询给出了表中出现超过 5 次的用户年龄计数 以避免结果过小 虽然这些小结果低于 having
  • Oracle中如何转义单引号? [复制]

    这个问题在这里已经有答案了 我有一列包含某些存储为文本字符串的表达式 其中包括单个引号 例如 错过的交易 包括引号 发生这种情况时如何使用 where 子句 select from table where reason missed tra
  • SQL 解析键值字符串

    我有一个像这样的逗号分隔字符串 key1 value1 key2 value2 key3 value3 key1 value1 1 key2 value2 1 key3 value3 1 我想将它解析成一个如下所示的表 Key1 Key2
  • 为什么在排序输入上插入到树中比随机输入更快?

    现在我一直听说从随机选择的数据构建二叉搜索树比有序数据更快 这仅仅是因为有序数据需要显式重新平衡以将树高度保持在最低限度 最近我实现了一个不可变的treap http en wikipedia org wiki Treap 一种特殊的二叉搜
  • 在分布式事务中手动登记后,使用 enlist=false 的连接不会关闭

    我有一个分布式事务上下文使用ServiceDomain 在其中 我打开一个 SQL 连接 其中连接字符串指定Enlist false 这样它就不是自动地被纳入交易 然后 如果我使用手动在分布式事务中登记连接EnlistDistributed
  • 快速 log2(float x) 实现 C++

    我需要在 C 中非常快速地实现 log2 float x 函数 我发现了一个非常有趣的实现 而且速度非常快 include
  • C# 事务中的事务

    我正在使用 C 将发票的平面文件导入到数据库中 如果遇到问题 我将使用 TransactionScope 回滚整个操作 这是一个棘手的输入文件 因为一行不一定等于一条记录 它还包括链接记录 发票将包含标题行 行项目和总计行 有些发票需要跳过
  • 使用外部硬盘写入和存储 mysql 数据库

    我已经设置了 mysql 数据库在我的 Mac 上使用 java 和 eclipse 运行 它运行得很好 但现在我将生成大约 43 亿行数据 这将占用大约 64GB 的数据 我存储了大量的密钥和加密值 我有一个 1TB 外部我想用作存储位置
  • OVER ORDER BY 中的多个列

    有没有办法在 OVER ORDER BY 子句中指定多个列 SELECT ROW NUMBER OVER ORDER BY A Col1 AS ID FROM MyTable A 上面的方法工作正常 但尝试添加第二列不起作用 SELECT
  • SQL:两个没有完整列匹配的表的并集

    我有一个table A其中有一组列A1 A2和一个具有一组列的 table bB1 B2 碰巧的是A2 B1但其余列不匹配 也不应该匹配 我想附加表格 所以我使用UNION ALL 对于不匹配的列 我使用null as COLUMN NAM
  • bool() 和operator.truth() 有什么区别?

    bool https docs python org 3 library functions html bool and operator truth https docs python org 3 library operator htm

随机推荐

  • 删除级联时不触发触发器

    我有一个名为 player instance 的表 然后是一个名为 penalties 的表 其中有一个引用player instance的外键 我还有一个名为 分数 的表 我有一个关于处罚的删除触发器 这样如果删除一行 那么它将改变分数中
  • 使用 GCM 向多个 Android 设备发送推送通知

    我正在关注http javapapers com android google cloud messaging gcm for android and push notifications http javapapers com andro
  • 改造 2 @path 与 @query

    我是 Retrofit 2 库的新手 作为初学者 我阅读了几篇文章来入门 并且我设法从我的 RESTful API 获取 XML 数据而不指定参数 在我的方法中 生成的 XML 资源如下 GET Path foods Produces Me
  • 将 NumPy 数组转换为 Python 列表

    我如何转换NumPy http en wikipedia org wiki NumPy数组到Python列表 Use tolist https numpy org doc stable reference generated numpy n
  • 我可以将 Partials 导入到 SASS 中的 Partials 中吗?

    我正在使用 Sass 设计一个新网站 最初 我的 style scss 编译的主 SCSS 文件 导入了 generic scss 我在其中定义了变量 和各个页面 例如 homepage scss 效果很好 然后我尝试重构 homepage
  • 到 MSMQ 还是不到 MSMQ? (或 SQL 表作为队列)

    我有一个分布式系统 其中有 1 个 SQL Server 1 n 个处理服务器和 1 n 个数据提供者 网络上的硬件设备 提供的数据在进入关系数据库结构之前需要进行处理 由处理服务器执行 作为 Windows 服务 net 代码来解析数据
  • Excel公式如何连接字符串以供外部参考

    假设我在单元格中有以下公式 该公式从另一个工作簿读取单元格的值 c temp external book xlsx SheetX E 4 我想要的值c temp external book xlsx SheetX来自此工作表中的另一个单元格
  • 使用 Python 进行 Google-Forms 响应?

    我正在尝试编写一个 Python 脚本 它可以在 Google 表单中提交响应 如下所示 https docs google com forms d 152CTd4VY9pRvLfeACOf6SmmtFAp1CL750Sx72Rh6HJ8
  • 删除 GitLab 中的版本

    我在 GitLab 中发布的版本有问题 我在我的项目中用标签创建了它们 现在我想删除它们 所以我删除了关联的标签 但我的版本始终显示 我在 Google 和 Stack Overflow 上搜索 但找不到任何解决方案 如何删除这些没有标签的
  • TreeView 不显示存储在数据中的子项

    在我的程序中我有一个TreeView具有数据支持 视图模型和数据模型 添加到的每个项目TreeView添加一个子项 但由于某种原因 子项在运行时没有反映 但是 我可以在调试期间看到孩子们以及我的 孩子 属性TreeView s数据模型包括N
  • 我怎样才能得到联系人姓名和他/她的电话号码

    我正在尝试使用 Android 脚本和 Python 开发一个简单的应用程序 现在 我有一个电话号码 我想找出哪个联系人有该号码 我可以执行 contactGet 并搜索号码 但很多程序都使用该功能 我认为有一种更简单的方法 有一个同样的问
  • 如何在 Windows 8 METRO 应用程序中实现错误日志记录?

    您好 我正在开发一个 Windows 8 c xaml Metro 应用程序 我想在我的应用程序中实现错误日志记录 我想以更好的方式处理错误日志 1 如何记录错误信息 以便于开发者纠正错误 2 是否有任何第三方工具 免费库用于在 Metro
  • 当我手动更改 firebase 数据库中的值时,我在列表视图中创建更多项目,而不是更新列表视图中的值

    我不知道我的代码出了什么问题请帮助我 只是尝试检索数据以列表视图 我的 MainActivity java public class MainActivity extends AppCompatActivity ListView listV
  • jQuery 动画和属性值(以百分比表示)

    我试图为 div 制作动画 并尝试使用在其他地方检索到的一些值 我知道该值是正确的 因为我已经打印出了输出 所以我想知道为什么它不能正常工作 animateBar percentage toFixed 2 function animateB
  • Xamarin.Forms WidthRequest 值含义

    在 Xamarin Forms 中 以下属性获得双精度值 WidthRequest HeightRequest Padding Spacing 等 这个数字有什么意义呢 是像素还是其他 我在这些属性中输入的值是否会响应设备屏幕尺寸 考虑到多
  • 无法加载资源:net::ERR_BLOCKED_BY_RESPONSE [重复]

    这个问题在这里已经有答案了 我正在寻找 iframe 这个问题的一些解决方案 domain com 1 Refused to display domain com q node add editor in a frame because i
  • XML 属性可以有空格吗?

    我正在创建一个DTD http www xmlfiles com dtd 对于 xml 文档 我有一个枚举属性 http www xmlfiles com dtd dtd attributes asp对于 xml 元素 我的问题是 属性可以
  • Java:带状态的 ASCII 随机行文件访问

    是否有比创建满足以下条件的流文件读取器类更好的 预先存在的可选 Java 1 6 解决方案 给定一个任意大大小的 ASCII 文件 其中每行都以 n 对于某个方法的每次调用readLine 从文件中读取随机行 并且在文件句柄的生命周期内不会
  • JQuery 最佳实践,在 IIFE 中使用 $(document).ready?

    我正在看一段代码 function other code here document ready function other code here jQuery 我虽然 IIFE 执行 document ready 的功能 但这段代码正确吗
  • SQL Server - 条件语句的查询执行计划

    条件语句 例如如果别的 影响 SQL Server 2005 及更高版本 中的查询执行计划 条件语句是否会导致执行计划不佳 在考虑性能时是否需要警惕任何形式的条件 编辑添加 我特别指的是缓存的查询执行计划 例如 在下面的实例中缓存查询执行计