我在SQL-server express上创建了几个标量函数。它们由Excel插件使用/调用。
是否有可能以某种方式获得一个函数被调用的频率?目的是找出哪些功能很受欢迎,哪些功能不受欢迎。如果可以为计数器设定一个时间跨度,那么更好的是能够回答以下问题:上周使用xy功能的频率是多少?
答案 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中执行此操作