Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 server 如何在SQL Server中检测隐式转换_Sql Server - Fatal编程技术网

Sql server 如何在SQL Server中检测隐式转换

Sql server 如何在SQL Server中检测隐式转换,sql-server,Sql Server,我需要搜索并删除许多存储过程中的隐式转换。但通过执行计划检查存储过程中的每一条语句以找出隐式转换确实需要花费太多时间 请告知如何有效地检测SQL Server数据库中所有可用存储过程中的隐式转换。可能的解决方案: 质疑 使用(SQL Server 2012+) 进行代码分析的工具(RedGate/ApexSql) 尝试检查计划缓存并搜索隐式转换,如。当然,它将只找到已执行和缓存的文件。或者执行存储过程,保存计划缓存并搜索隐式转换。您不需要手动查看每个执行计划,使用DMV并查询它。必须首先执行另一

我需要搜索并删除许多存储过程中的隐式转换。但通过执行计划检查存储过程中的每一条语句以找出隐式转换确实需要花费太多时间

请告知如何有效地检测SQL Server数据库中所有可用存储过程中的隐式转换。

可能的解决方案:

  • 质疑
  • 使用(SQL Server 2012+)
  • 进行代码分析的工具(RedGate/ApexSql)

  • 尝试检查计划缓存并搜索隐式转换,如。当然,它将只找到已执行和缓存的文件。或者执行存储过程,保存计划缓存并搜索隐式转换。您不需要手动查看每个执行计划,使用DMV并查询它。必须首先执行另一个解决方案SP。最后一个解决方案查找工具,用于对代码进行静态分析(RedGate或Apex)应该有类似的东西,要求工具显然是离题的,所以我编辑了你的问题。虽然已经有4张接近票数的选票了,如果有人在没有阅读的情况下给出第五张,我也不会感到惊讶。谢谢@lad2025,非常感谢你的帮助。但我仍然在搜索这种类型的工具,而不是dmv/扩展事件/计划缓存。在我看来,你不会找到完全自动为你工作的工具。如果我是你,我会采取延长事件,设置警报和追捕每一个隐式演员。我知道这需要时间,一开始会有很多事情要做。试想一下动态SQL,如果不执行查询,该工具将如何知道转换问题?很好的解释。非常感谢。