在上一篇文章中,我们详细描述了提交的 SQL Server 查询所经历的不同阶段以及 SQL Server 关系引擎如何处理它。SQL Server 关系引擎生成执行计划,SQL Server 存储引擎执行请求的数据检索或修改过程。在本文中,我们将讨论 SQL Server 执行计划的不同类型和格式。
执行计划类型
SQL Server 执行计划是已提交查询的执行路线图的图形表示,SQL Server 查询优化器将遵循该路线图。SQL Server 为我们提供了两种主要类型的执行计划。
- 预估执行计划 : 它是通过解析提交的查询生成的计划,在不执行的情况下预估对查询将如何执行。
- 实际执行计划: 它是通过执行提交的查询生成的,显示执行查询时遵循的实际步骤。
大多数情况下,数据库管理员更喜欢实际执行计划,因为它显示了有关查询执行统计信息的更多信息。但是对于一些需要很长时间运行的复杂查询,你可以在不实际执行的情况通过预估执行计划进行故障排除。但在某些情况下,由于实际表数据和统计信息之间的差异,预估执行计划和实际执行计划可能会有很大差异。频繁的数据插入和修改操作也会使统计数据不太准确。
这个问题可以通过更新表或索引的统计信息来解决。在某些情况下,当查询具有尚未创建的临时表时,将无法生成估计执行计划,因为没有执行查询来创建表,从而导致如下错误消息:
预估执行计划(Estimated Execution Plan)
预估执行计划可以通过一下几种方式查看:
-
从查询(Query)菜单中选择Display Estimated Execution Plan选项,如下所示:
-
单击任务栏中的Display Estimated Execution Plan图标,如下所示:
-
右击查询编辑器,选择Display Estimated Execution Plan选项,如下图: