如何在 Linux 上的 SQL 服务器中查看执行计划

How to view execution plans in SQL Server on Linux

我在 Linux 上安装了 SQL 服务器。它是从 Microsoft 的存储库安装的,如下所述: https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu

在MySql中我曾经在查询前写EXPLAIN来查看执行计划。在 SQL 服务器中它似乎不起作用。但是我没有安装工作室程序,只有 SQL 服务器和 sqlcmd 工具。

如何在 Linux 上的 SQL 服务器中查看查询的执行计划?

Microsoft 发布了一个名为 SQL Operations studio 的新工具,它类似于 SSMS,但可用于 Windows、Linux、Macos。

下载位置:
https://docs.microsoft.com/en-us/sql/sql-operations-studio/download

下面是它的截图

使用sqlopsstudio查看实际执行计划(所有平台步骤相同)

  • CTRL+SHIFT+P
  • 键入 运行 具有实际执行计划的查询,如下所示,select 突出显示,您将获得实际执行计划

查看估计的执行计划:

只需按下图所示的ICON

您也可以使用快捷键查看实际执行计划。以下是步骤

1.Press CTRL+SHIFT+P
2.Type 键盘快捷键
3.In搜索计划类型实际如下所示
4.Right 单击实际查询计划快捷方式并说 add key binding 使用您选择的键(对我来说是 CTRL+M

下面的部分答案是在没有 SQLOPS studio 的时候写的 available.This 可以帮助任何没有 SQLopsstudio 的人:

目前只有在 Windows、使用 SSMS 或某些第三方工具(如 SQLSentry)时才支持查看执行计划..

这里正在跟踪一个功能请求:Return ShowPlan data as Text or XML with Query Execution

另一种选择是在 linux 上使用 VSCODE 连接并设置 show plan xml,如下面的屏幕截图所示。这提供了 xml 的执行计划

SET showplan_xml ON;

你可以把那个 xml 上传到 Paste The Plan 网站并可以查看计划

下面是上面的截图XML

您也可以在 SQLSENTRY 计划资源管理器中查看它(仅限 Windows)以进行更深入的分析