点“解释”没出图,先查连接配置里是否勾选「显示执行计划」:必须在连接属性→「常规」选项卡中手动勾选,否则Navicat退回到SET SHOWPLAN_TEXT ON返回纯文本;SQL Server版本低于2008不支持XML执行计划,无法渲染图形;INSERT/UPDATE/DELETE语句点“解释”会真实执行,非预估;含INSERT EXEC等不支持构造或缺少SHOWPLAN权限(报错Msg 262)也会导致失败。
点“解释”没出图,先查连接配置里是否勾选「显示执行计划」
navicat 对 sql server 的图形化执行计划依赖连接级开关,不是全局设置,也不是查询前临时加命令。如果点了“解释”只看到文本或空白面板,90% 是因为这个选项没开:显示执行计划 必须在连接属性 → 「常规」选项卡中手动勾选。未勾选时,navicat 会退回到 set showplan_text on,返回纯文本,连成本百分比和运算符图标都不会渲染。
SQL Server 版本低于 2008 就不可能出图
图形化执行计划底层靠 SQL Server 返回 XML 格式计划,而 XML 输出从 SQL Server 2008 才正式支持。如果你连的是 2005 或更早版本,Navicat 即使勾了选项、权限也到位,也只能显示文本计划——这不是 Navicat 的 bug,是服务端能力缺失。验证方式很简单:把同一条语句粘进 SSMS,按 Ctrl+M,如果 SSMS 也不出图,问题就在版本上。
INSERT/UPDATE/DELETE 点“解释”会真实执行
Navicat 默认获取的是实际执行计划(actual execution plan),不是预估。这意味着:
-
UPDATE、DELETE、INSERT类语句点“解释”,数据真会被改写——不是模拟,不加事务包装,也不回滚 - 你会看到
Actual Rows和Estimated Rows并列,内存授予(Granted Memory)、并行线程数、黄色警告图标等运行时指标 - 若语句含
INSERT EXEC、OPENQUERY或引用链接服务器对象,SQL Server 会直接拒绝生成图形计划,Navicat 显示空面板或报错Msg 3614
权限不足时固定报错 Msg 262, Level 14, State 1: SHOWPLAN permission denied.
没有 SHOWPLAN 权限,点“解释”会立刻失败,不会静默跳过。修复方式只有两个:
- 用
sysadmin或db_owner账号登录后执行:GRANT SHOWPLAN TO [your_user] - 更安全的做法是只授当前数据库权限:
GRANT SHOWPLAN ON DATABASE::[your_db] TO [your_user]
别指望 Navicat 自动提示缺权限——它只报错,不解释原因。很多用户卡在这一步,反复检查语句、版本、配置,却漏看了权限。











