有没有办法只显示超过批次1%的项目?
我试图在proc中找到瓶颈,它包含循环和其他逻辑以及我不关心的最终执行计划的99%,但很难在Management Studio中滚动并实际找到那些缓慢的部分它失败了。
答案 0 :(得分:13)
你看过SQL Sentry Plan Explorer了吗?这是一个100%免费的工具,可以与Management Studio集成,并在分析计划时提供更多的清晰度。一个非常快速的示例显示了如何快速关注任何图形式计划中最昂贵的节点:
下载:
https://sentryone.com/plan-explorer
有一个演示工具包可以帮助其他人说明使用Plan Explorer可以轻松执行计划:
https://blogs.sentryone.com/aaronbertrand/plan-explorer-3-0-demo-kit/
根据您的实际问题,它不会隐藏计划中的任何低成本或零成本操作,但它会突出显示红色,橙色和黄色中最昂贵的节点;我们还强调查找和扫描,您还可以通过CPU + I / O,单独的CPU或I / O(在SSMS中只能使用组合)显示成本%。您正在寻找的许多性能问题都是前端和中心或其中一个详细的选项卡,而不是隐藏在“属性”面板,奇怪的工具提示中或根本没有显示。除了图形式计划的增强功能之外,您还可以通过在“语句树”节点中进行排序来关注循环中发生的特定语句(包含大量相关但成本较低的语句)。估计与实际行(实际计划)的差异可以突出潜在的统计问题;键查找所需的列可以快速识别缺失的索引列(或者不应该是SELECT *查询);运行时与已编译的参数可以指出参数嗅探问题,您可能希望使用RECOMPILE,OPTIMIZE FOR或打开“针对临时工作负载进行优化”。最后,与Management Studio不同,您可以通过在工具中生成实际计划来轻松生成运行时指标(持续时间,CPU,读取等) - 使用本机工具,您需要混淆SET选项或使用分析器来获取这些指标 - 即使是那些你必须打折将结果发送给客户的工作(Plan Explorer在服务器上运行查询但丢弃结果)。
答案 1 :(得分:1)
我今天刚刚下载了SSMS Tools Pack Addin的最新版本,并注意到它现在有一些新功能也可以在这方面提供帮助。
基本上,您可以配置百分比和指标(例如总体估计成本或估计的IO成本),超出此阈值的运营商按成本顺序列在计划的左侧,并且可以单击以导航到特定运营商
请参阅Execution Plan Analyser屏幕截图以获得更好的主意。