查询sqlserver存储过程的历史执行时间
时间: 2023-07-18 10:34:03 浏览: 62
你可以使用系统视图sys.dm_exec_procedure_stats来查询存储过程的历史执行时间。该视图可以返回有关存储过程执行的统计信息,包括执行计数、总运行时间、平均运行时间等等。以下是一个示例查询:
```
SELECT
DB_NAME(database_id) AS database_name,
OBJECT_NAME(object_id, database_id) AS proc_name,
last_execution_time,
execution_count,
total_elapsed_time/execution_count AS avg_elapsed_time
FROM sys.dm_exec_procedure_stats
WHERE OBJECT_NAME(object_id, database_id) = 'your_stored_procedure_name'
ORDER BY last_execution_time DESC;
```
将上述查询中的'your_stored_procedure_name'替换为你要查询的存储过程名称即可。注意,该视图会跟踪所有数据库上的存储过程执行,因此你需要指定要查询的数据库。
相关问题
查询sqlserver存储过程的所有历史执行时间
我可以回答这个问题。您可以使用以下SQL查询语句来获取SQL Server存储过程的所有历史执行时间:
SELECT
DB_NAME(database_id) as 'Database Name',
OBJECT_NAME(object_id, database_id) as 'Stored Procedure Name',
last_execution_time as 'Last Execution Time'
FROM
sys.dm_exec_procedure_stats
WHERE
database_id = DB_ID('your_database_name')
AND OBJECT_NAME(object_id, database_id) = 'your_stored_procedure_name'
ORDER BY
last_execution_time DESC;
请将“your_database_name”和“your_stored_procedure_name”替换为您要查询的数据库和存储过程的名称。
帮我生成一个sqlserver查询历史执行过的sql的脚本
好的,以下是生成查询历史执行过的 SQL 脚本的步骤:
1. 运行以下 SQL 语句创建一个日志表,用于存储查询历史记录:
CREATE TABLE SqlLog(LogId INT IDENTITY(1,1) PRIMARY KEY,
SqlText NVARCHAR(MAX),
ExecutedDateTime DATETIME)
2. 将以下代码插入到您的每个查询或存储过程的顶部,以便在执行时记录信息:
DECLARE @sql NVARCHAR(MAX)
SET @sql = 'INSERT INTO SqlLog(SqlText, ExecutedDateTime) '
+ ' VALUES (''' + REPLACE(@@PROCID, '''', '''''') + ': ' + REPLACE(@@SQLTEXT, '''', '''''') + ''', GETDATE())'
EXEC (@sql)
3. 运行以下查询,以查看查询历史纪录:
SELECT * FROM SqlLog
请注意,此脚本是仅供参考的示例,并且应根据您的实际需求进行修改和测试。
阅读全文