Sql server 2008 显示最近执行的存储过程,包括参数
Microsoft提供的sql允许我查看最近执行的存储过程,但不能查看作为参数传递的值 我应该在哪里查找这些信息Sql server 2008 显示最近执行的存储过程,包括参数,sql-server-2008,tsql,Sql Server 2008,Tsql,Microsoft提供的sql允许我查看最近执行的存储过程,但不能查看作为参数传递的值 我应该在哪里查找这些信息 SELECT TOP 10 d.object_id, d.database_id, OBJECT_NAME(object_id, database_id) 'proc name', d.cached_time, d.last_execution_time, d.total_elapsed_time, d.total_elapsed_time/d
SELECT TOP 10
d.object_id, d.database_id,
OBJECT_NAME(object_id, database_id) 'proc name',
d.cached_time, d.last_execution_time, d.total_elapsed_time,
d.total_elapsed_time/d.execution_count AS [avg_elapsed_time],
d.last_elapsed_time, d.execution_count
FROM
sys.dm_exec_procedure_stats AS d
ORDER BY
[total_worker_time] DESC;
为什么不将存储过程插入数据库的某个表中呢 差不多
INSERT INTO someTable (Value)
SELECT @StoredProcedureInsertParamter
这些信息实际上并不存在于任何地方(除非像其他人所建议的那样,你自己存储)。但是,您可以通过使用SQL事件探查器或扩展事件来查看它。使用SQL Profiler,您需要选择
RPC:Completed
和SQL:BatchCompleted
事件,并确保为这两个事件选择TextData
列。我认为这类信息不会保留在任何位置(默认情况下)。您只需要查询一个过程统计使用系统表。它用于optmization可能太晚了,无法获取过去的信息,但对于未来,您可以创建一个审计/日志表,并从存储过程中插入所需的值(可能包括用户信息)。