我需要记录SQL Server用户定义的函数(Progammability / functions)和存储过程调用(函数名称/ SP和上次执行时间)。
对于存储过程,我使用扩展事件(Session - > EVENT sqlserver.sp_statement_completed)。
是否可以对功能使用相同的方法?
答案 0 :(得分:1)
我现在正在使用这种方法:
INSERT INTO @Table
SELECT DISTINCT ct.objectid as ObjectId,
GETDATE() LastDate
FROM sys.dm_exec_cached_plans cp
OUTER APPLY sys.dm_exec_sql_text(plan_handle) AS ct
INNER JOIN Sysobjects s on s.id = ct.objectid
WHERE s.xtype in ('V', 'IF', 'FN', 'TF') --Views, Table-valued Functions, Scalar-valued functions
因此,我通过计时器调用此代码(例如每小时)。它没有显示确切的通话时间,但允许我查找非使用功能等。