Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL调优顾问没有';t显示exec sp_executesql的提示_Sql_Sql Server_Ssms - Fatal编程技术网

SQL调优顾问没有';t显示exec sp_executesql的提示

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是否可以优化

在尝试使用SQL Server Tuning Advisor了解我的系统中可以改进的方面时,我遇到了一些问题:

exec sp_executesql '(dynamic-sql)', (parameter types), (parameter values)
Tuning advisour正在考虑一段时间,没有任何建议。同时,当我让他思考:

使用相同的参数值进行查询(原始sql代码)-我有很好的建议应该创建哪些索引

所以我想知道:

  • SQL Server Tuning Advisor是否可以优化exec sp_executesql语句 2a。如果“是”,那么我是否应该使用原始sql代码而不是sp_executesql,因为此原始代码有很好的建议

    2b。如果“否”,那么对原始sql代码的优化最终会改进sp_executesql语句吗


    提前谢谢你

    我相信
    sp_executesql
    最终将构建您的SQL并独立执行,因此您将在
    sp_executesql
    之外的另一个条目(它自己的)上看到它。也许EzLo的答案是正确的,DTA可以将动态SQL视为一个独立的执行上下文……嗯,我认为@EzLo也是正确的。就像我在(现在已删除的)回答中所做的评论一样,我认为看到一条您没有看到的动态sql语句可能会有所帮助。如果您使用的是正确参数化的动态SQL,那么这些查询将存储在查询计划缓存中以供重用;和顾问一起检查。另一方面,如果您没有,那么这些查询将很快丢失,并且不太可能被检查。也许真正的问题是OP的动态语句使用参数注入,而不是传递它们的值?所有索引建议将显示在计划中。我相信
    sp_executesql
    最终将构建您的SQL并独立执行,因此您将在另一个条目(它自己的)上看到它,在
    sp_executesql
    之外。也许EzLo的答案是正确的,DTA可以将动态SQL视为一个独立的执行上下文…嗯,我认为@Ezlo也很合适。就像我在(现在已删除的)回答中所做的评论一样,我认为看到一条您没有看到的动态sql语句可能会有所帮助。如果您使用的是正确参数化的动态SQL,那么这些查询将存储在查询计划缓存中以供重用;和顾问一起检查。另一方面,如果您没有,那么这些查询将很快丢失,并且不太可能被检查。也许真正的问题是OP的动态语句使用参数注入,而不是传递它们的值?所有索引建议将显示在计划中