当我运行一次存储过程并查看sys.dm_exec_query_stats中的查询统计信息时,我得到正确的执行计数,即1
但是当我执行UDF一次时,我发现它的执行计数是4(sys.dm_exec_query_stats中的udf有3行)
ObjName ExecutionCount AvgWorkerTime
fnGetDomesticNumber 1 3066
fnGetDomesticNumber 2 411
fnGetDomesticNumber 1 657
任何人都可以帮助我理解这一点。
谢谢
答案 0 :(得分:0)
SQL Server可能正在重新编译UDF。您可以通过运行SQL Server Profiler并捕获SP:Recompile事件来验证这一点。
此外,根据您调用该函数的SQL查询,SQL Server可能会为每行数据调用一次该函数。这可以解释ExecutionCount为2。