存储过程的完整执行历史记录

问题描述 投票:0回答:1

我想知道如何获取特定存储过程的

所有执行
execution_time。 (使用 Microsoft SQL Server 2016)

我知道通过

dm_exec_procedure_stats
我可以获得有关
last_execution_time
execution_count
的信息,但我对(一个存储过程的)每次执行的
execution_time
感兴趣,这些执行被计为
execution_count

我得到的是这样的(作为例子):

| name     | database_id | execution_count | last_execution_time |
------------------------------------------------------------------
| sp_name1 | db_id1      | 23              | 11.09.2019 hh:mm:ss |
| sp_name2 | db_id1      | 12              | 09.09.2019 hh:mm:ss |
| sp_name3 | db_id2      | 3456            | 11.09.2017 hh:mm:ss |

所以基本上我想要一个查询来获取一个表,该表的一列是过程的名称,另一列是该过程的执行时间,这样行数应该等于过程中的

execution_count

我想要的是这样的:

| name     | database_id | execution_time      |
------------------------------------------------
| sp_name1 | db_id1      | 11.09.2019 hh:mm:ss |
| sp_name1 | db_id1      | dd.mm.yyyy hh:mm:ss |
| sp_name1 | db_id1      | dd.mm.yyyy hh:mm:ss |
| ...      | ...         | ...                 |

应该有 23 行。

sql-server stored-procedures execution-time
1个回答
0
投票

要获取存储过程的执行历史记录,您可以使用:

分析器
SQL Server >工具>SQL Server 探查器 导航到文件 > 新跟踪。 跟踪属性 > 单击“事件选择”选项卡 > 在“存储过程”计数器分组中选择

SP:Completed counter
>单击“常规”选项卡保存结果(表/文件)。> 列过滤器:您可以捕获您所在的数据库正在努力>终于运行

© www.soinside.com 2019 - 2024. All rights reserved.