【发布时间】:2011-07-27 10:28:38
【问题描述】:
我是否可以运行一个查询来显示特定数据库的某个日期范围内已在服务器上运行的所有查询?
我需要找出上周执行的存储过程传递了哪些参数值
【问题讨论】:
标签: sql sql-server-2008 ssms
我是否可以运行一个查询来显示特定数据库的某个日期范围内已在服务器上运行的所有查询?
我需要找出上周执行的存储过程传递了哪些参数值
【问题讨论】:
标签: sql sql-server-2008 ssms
没有
做到这一点的唯一方法是提前设置监控过程。
监控数据库,例如通过 SQL 探查器,会对性能产生影响,因此在长时间针对实时系统使用它时应谨慎。
监控此类活动的更好方法是使用调用代码中的日志记录。
【讨论】:
试试下面的:
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
http://blog.sqlauthority.com/2008/01/03/sql-server-2005-last-ran-query-recently-ran-query/
【讨论】:
sys.dm_exec_query_stats 基于查询计划 cache,因此可能不包括在最旧和最新行之间执行的所有 SQL 语句。