我如何知道自创建或上周以来调用UDF / SP的频率

时间:2011-10-14 09:03:08

标签: sql-server-2008

我在SQL-server express上创建了几个标量函数。它们由Excel插件使用/调用。

是否有可能以某种方式获得一个函数被调用的频率?目的是找出哪些功能很受欢迎,哪些功能不受欢迎。如果可以为计数器设定一个时间跨度,那么更好的是能够回答以下问题:上周使用xy功能的频率是多少?

2 个答案:

答案 0 :(得分:1)

您可以通过运行

获得一个模糊的想法
SELECT usecounts
FROM sys.dm_exec_cached_plans 
CROSS APPLY sys.dm_exec_sql_text(plan_handle) 
WHERE sys.dm_exec_sql_text.objectid=object_id('YourFunction') 

如果以RBAR方式调用该函数,则从快速测试结束

SELECT dbo.YourFunction(X)
FROM T

usecounts每个查询只增加一次,而不是每个函数调用一次。而且随着时间的推移,您将无法获得任何使用指示。自计划缓存以来usecounts已被使用。

答案 1 :(得分:0)

一种选择是运行Profiler一段时间来捕获过滤后的活动。

另一个是查看Database-Level Audit Actions,但您可能会记录方式太多信息。不确定您是否可以过滤(尚未使用此功能)

对于存储过程,您可以根据需要添加基本日志记录。您无法在无法更改DB状态(写入,即)的UDF中执行此操作