Azure Data Studio 中的查询计划查看器

适用范围:SQL Server Azure SQL 数据库 Azure SQL 托管实例

Azure Data Studio 支持捕获估计的和实际的查询计划。 查询计划提供 SQL Server 查询优化器所选的数据检索(或修改)方法的图形显示形式。 此可视化方法可帮助了解查询的性能特征。

显示 - 估计计划

要查看查询的估计计划,请突出显示特定查询并选择“估计计划”按钮。

注意

如果不选择查询而是选择“估计计划”按钮,它将在查询窗口中显示所有查询的估计计划。

显示 - 实际计划

要在编辑器中查看任何查询的“实际计划”,请选择“启用实际计划”按钮或 CTRL + M。启用此选项后,执行任何查询(通过“运行”按钮或 F5)都将在“查询计划”选项卡中显示实际计划。

注意

如果不选择查询而是选择“运行”或 F5,它将在查询窗口中显示所有查询的实际计划。

输出

查看估计或实际计划时,除了“结果和消息”选项卡外,还可以使用三个选项卡。这些选项卡分别是“查询计划”、“计划树”和“顶部操作”。 “查询计划”选项卡显示计划并提供多个菜单选项,可在右侧菜单栏和右键单击菜单中使用。 “计划树”以文本格式显示计划,其中包括可排序的列。 “顶部操作”窗格列出了计划中的运算符,可根据不同的属性进行排序,以识别成本最高的运算符。

查询计划菜单选项

从查询计划的上下文中,可通过多个选项进一步分析计划。 右键单击计划中的任意位置或从右侧菜单栏中访问这些选项。

图标 选项 说明
“保存计划”图标的屏幕截图。 保存计划文件 将查询计划保存为 .sqlplan 文件
显示查询计划 XML 图标的屏幕截图。 显示查询计划 XML 在新窗口中查看 XML 格式的查询计划
“打开查询”图标的屏幕截图。 打开查询 在新窗口中打开计划的查询
“放大”图标的屏幕截图。 放大 在计划内放大
“缩小”图标的屏幕截图。 缩小 在计划内缩小
“缩放到合适大小”图标的屏幕截图。 缩放到合适大小 将计划调整为窗口大小
“缩放到自定义大小”图标的屏幕截图。 自定义缩放 为计划指定自定义缩放级别
“查找节点”图标的屏幕截图。 查找节点 根据特定属性值搜索计划中的节点
“属性窗格”图标的屏幕截图。 属性 显示属性窗格
“比较计划”图标的屏幕截图。 比较执行计划 在新窗口中将当前执行计划与其他计划进行比较
突出显示成本高昂的运算符图标的屏幕截图。 突出显示成本高昂的运算符 根据指定属性确定计划中成本最高的运算符
“工具提示”图标的屏幕截图。 工具提示 将鼠标悬停在计划中的运算符上时,用于启用或禁用工具提示的切换
“顶部操作”图标的屏幕截图。 顶部操作 切换到“顶部操作”窗格

顶部操作

在“顶部操作”选项卡中,除了对列进行排序外,还可使用右侧的“筛选”窗口查找具有共同字段值的运算符。 例如,在访问特定数据库对象的计划中查找所有嵌套循环运算符,或筛选给定属性的特定值时,它可能会有所帮助。

筛选群集后的“顶部操作”选项卡的屏幕截图。

对于列表中的任何运算符,选择运算符名称以跳转到该运算符在查询计划中的位置(绿色框会将该运算符框起来)。

计划比较

在解决计划性能差异问题时,比较查询计划很有用,这可以在 Azure Data Studio 中通过右键单击计划并选择“比较执行计划”来完成。 当前计划将在新窗口的上半部分打开,下半部分显示“添加执行计划”按钮。 选择“添加执行计划”按钮并浏览到要与之比较的已保存计划。

比较的两个计划的屏幕截图。

比较计划菜单提供了几个与查询计划菜单中相同的图标,但它还提供了使用“切换方向”按钮将方向从水平显示切换到垂直显示的功能。 计划比较窗口中的“属性”窗格提供并排查看每个计划中运算符属性值的功能。 选择“属性”按钮,然后选择要比较的每个计划中的运算符。 虽然可以选择任何运算符,但在计划内的相似位置选择相同的运算符通常会有所帮助。 Select 运算符就是一个示例,但在下面的屏幕截图中选择了“Index Seek”运算符。

与显示的“属性”窗口比较的两个计划的屏幕截图。

用于计划比较的“属性计划”的默认视图在顶部列出了具有不同值的属性,而具有相同值的属性折叠在“等效属性”标题下。 可使用排序图标更改此视图,且可展开或折叠属性列表,以帮助显示和查找信息。 “属性”窗格还具有“筛选”菜单,可提供快速导航到感兴趣的属性的功能。

后续步骤