在开发过程中,我每天运行几次SQL,通常执行时间为3-8分钟。
现在我已经将它封装在一个存储过程中(没有参数),性能是不可能的。THe first "heavy“语句(只涉及c.27k行)从未完成。
实际的执行计划不是一个选项,因为我甚至无法完成这个语句。所以我得看一下估计的执行计划。
麻烦的是,我在每个语句的执行计划窗格中都有一个单独的“子窗格”。我不能注释掉前面的语句,因为它们是问题语句运行所必需的(尽管我已经注释掉了以下所有语句)。
如何才能在屏幕上查看问题陈述的计划?这显然是个大计划。所有其他语句的计划(我不感兴趣)都占用了大量的屏幕空间,因此不可能在重要的语句中滚动并找到瓶颈。但现在似乎有办法“展示这个声明的计划,并占据全屏”。
我是不是遗漏了什么?
发布于 2020-01-22 19:27:47
我认为在SSMS中没有办法做到这一点。
为此,您应该使用哨兵一号计划探索者。它是一个免费的工具,它提供了查看Server执行计划的另一种方法。
我已经在Stack Overflow 2010示例数据库的本地副本上运行了以下代码:
CREATE PROCEDURE #sp_TestQuery
AS
SELECT COUNT_BIG(*) FROM dbo.Users u WHERE u.Id > 10;
SELECT MAX(p.CommentCount) FROM dbo.Posts p WHERE p.Id > 1000;
SELECT MIN(v.BountyAmount) FROM dbo.Votes v WHERE v.Id > 100000;
GO
EXEC #sp_TestQuery;运行EXEC...行会产生您在SSMS中提到的问题:

我在这里有一个选择,就是至少通过拖动不同窗格之间的边框来调整它们的大小。如果我主要想看到中间的查询:

但这还是不太理想。“计划资源管理器”中的默认视图显示顶部的语句列表,我可以单击每个语句查看下面的图形计划。以下是计划资源管理器中的中间查询:

https://dba.stackexchange.com/questions/257982
复制相似问题