UDF的SQL Server查询统计信息

时间:2012-10-05 21:00:03

标签: sql-server query-performance

当我运行一次存储过程并查看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

任何人都可以帮助我理解这一点。

谢谢

1 个答案:

答案 0 :(得分:0)

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

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