如何找出存储过程每次有运行
How to find out every time a stored procedure has run
有没有办法找出存储过程在过去 X 天内每次 运行?有办法看到最后一次运行,但是如果我想看到最后X次怎么办。
我搜索时找不到任何东西。有什么建议吗?
有几种方法可以做到这一点。访问这里:https://www.mssqltips.com/sqlservertip/3259/several-methods-to-collect-sql-server-stored-procedure-execution-history/
我建议您利用扩展事件的功能来捕获直方图。您可以这样设置:
CREATE EVENT SESSION [ProcedureExecutionCount]
ON SERVER
ADD EVENT sqlserver.rpc_completed
(SET collect_statement = (0)
WHERE (
[sqlserver].[equal_i_sql_unicode_string]([sqlserver].[database_name], N'AdventureWorks')
AND [object_name] = N'AddressByCity'
)
)
ADD TARGET package0.histogram
(SET filtering_event_name = N'sqlserver.rpc_completed', source = N'object_name', source_type = (0));
现在,只会,永远,计算该过程在该数据库上执行的次数。不错,简单,干净,容易。
有没有办法找出存储过程在过去 X 天内每次 运行?有办法看到最后一次运行,但是如果我想看到最后X次怎么办。
我搜索时找不到任何东西。有什么建议吗?
有几种方法可以做到这一点。访问这里:https://www.mssqltips.com/sqlservertip/3259/several-methods-to-collect-sql-server-stored-procedure-execution-history/
我建议您利用扩展事件的功能来捕获直方图。您可以这样设置:
CREATE EVENT SESSION [ProcedureExecutionCount]
ON SERVER
ADD EVENT sqlserver.rpc_completed
(SET collect_statement = (0)
WHERE (
[sqlserver].[equal_i_sql_unicode_string]([sqlserver].[database_name], N'AdventureWorks')
AND [object_name] = N'AddressByCity'
)
)
ADD TARGET package0.histogram
(SET filtering_event_name = N'sqlserver.rpc_completed', source = N'object_name', source_type = (0));
现在,只会,永远,计算该过程在该数据库上执行的次数。不错,简单,干净,容易。