SQL调优顾问没有';t显示exec sp_executesql的提示
在尝试使用SQL Server Tuning Advisor了解我的系统中可以改进的方面时,我遇到了一些问题:SQL调优顾问没有';t显示exec sp_executesql的提示,sql,sql-server,ssms,Sql,Sql Server,Ssms,在尝试使用SQL Server Tuning Advisor了解我的系统中可以改进的方面时,我遇到了一些问题: exec sp_executesql '(dynamic-sql)', (parameter types), (parameter values) Tuning advisour正在考虑一段时间,没有任何建议。同时,当我让他思考: 使用相同的参数值进行查询(原始sql代码)-我有很好的建议应该创建哪些索引 所以我想知道: SQL Server Tuning Advisor是否可以优化
exec sp_executesql '(dynamic-sql)', (parameter types), (parameter values)
Tuning advisour正在考虑一段时间,没有任何建议。同时,当我让他思考:
使用相同的参数值进行查询(原始sql代码)-我有很好的建议应该创建哪些索引
所以我想知道:
提前谢谢你 我相信
sp_executesql
最终将构建您的SQL并独立执行,因此您将在sp_executesql
之外的另一个条目(它自己的)上看到它。也许EzLo的答案是正确的,DTA可以将动态SQL视为一个独立的执行上下文……嗯,我认为@EzLo也是正确的。就像我在(现在已删除的)回答中所做的评论一样,我认为看到一条您没有看到的动态sql语句可能会有所帮助。如果您使用的是正确参数化的动态SQL,那么这些查询将存储在查询计划缓存中以供重用;和顾问一起检查。另一方面,如果您没有,那么这些查询将很快丢失,并且不太可能被检查。也许真正的问题是OP的动态语句使用参数注入,而不是传递它们的值?所有索引建议将显示在计划中。我相信sp_executesql
最终将构建您的SQL并独立执行,因此您将在另一个条目(它自己的)上看到它,在sp_executesql
之外。也许EzLo的答案是正确的,DTA可以将动态SQL视为一个独立的执行上下文…嗯,我认为@Ezlo也很合适。就像我在(现在已删除的)回答中所做的评论一样,我认为看到一条您没有看到的动态sql语句可能会有所帮助。如果您使用的是正确参数化的动态SQL,那么这些查询将存储在查询计划缓存中以供重用;和顾问一起检查。另一方面,如果您没有,那么这些查询将很快丢失,并且不太可能被检查。也许真正的问题是OP的动态语句使用参数注入,而不是传递它们的值?所有索引建议将显示在计划中