1

当我运行一次存储过程并查看 sys.dm_exec_query_stats 中的查询统计信息时,我得到正确的执行计数,即 1

但是当我执行一次 UDF 时,我看到它的执行计数是 4(在 sys.dm_exec_query_stats 中有 3 行用于该 udf)

ObjName ExecutionCount AvgWorkerTime


fnGetDomesticNumber 1 3066
fnGetDomesticNumber 2 411
fnGetDomesticNumber 1 657

谁能帮我理解这一点。

谢谢

4

1 回答 1

0

SQL Server 可能正在重新编译 UDF。您可以通过运行 SQL Server Profiler 并捕获 SP:Recompile 事件来验证这一点。

此外,根据调用该函数的 SQL 查询,SQL Server 可能每行数据调用一次该函数。这可以解释 ExecutionCount 为 2。

于 2012-10-05T21:46:22.913 回答