SQL Server查询存储是否捕获参数值?


9

SQL Server 2016中引入的新查询存储很棒。它是我以前使用较旧的Profiler工具所做的大部分工作的理想替代品。但是,我还没有找到一种方法来捕获与嗅探到的高资源消耗查询的各个调用相关的参数值。这可能吗?

我知道查询存储处理的是聚合数据而不是单个调用,因此我怀疑我在这里可能不走运。当我发现一个慢查询时,我发现它很方便进行故障排除,使其参数也与其最慢的调用之一相关联。我想知道如何使用最新最好的工具来执行此操作。(我不会错过使用Profiler!)

从安全角度来看,查询存储的锁定程度是否低于Profiler?我认为它需要从某个级别的单个调用中捕获数据才能计算聚合。只是不确定是否存储了其中的任何一个。

Answers:


11

根据计划,ParameterCompiledValue通过检查中保存的XML计划,您应该能够看到每个参数的sys.query_store_plan

该列表通常包含在xml计划的末尾,并且可以在ParameterList节点中找到。

这并不能为每次执行提供价值,但是可以使您大致了解计划的编制方式。

如果确实需要获取每次执行的值,则可以创建一个扩展事件会话以收集详细信息。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.