检索最近执行的SQL命令(T-SQL)

时间:2009-07-28 19:31:13

标签: sql tsql stored-procedures system-stored-procedures

我的一位开发人员在SQL Server 2008中处理基于触发器的日志记录工具,问我是否有命令在T-SQL中检索最近执行的SQL命令。我认为有一个系统存储过程只是为了这样一个功能,但我可能正在考虑前十年的另一个产品...在线搜索没有给我们带来任何结果。

有没有人有关于此类事情的信息?

3 个答案:

答案 0 :(得分:19)

一定要试试这个:

SELECT
DMExQryStats.last_execution_time AS [Executed At],
DMExSQLTxt.text AS [Query]
FROM
sys.dm_exec_query_stats AS DMExQryStats
CROSS APPLY
sys.dm_exec_sql_text(DMExQryStats.sql_handle) AS DMExSQLTxt
ORDER BY
DMExQryStats.last_execution_time DESC

它将返回最近执行的查询以及执行它们的日期和时间

答案 1 :(得分:4)

好吧,检索最新SQL批处理的过程可以安全地自行返回:)

严肃地说,您可以根据last_execution_time列查看sys.dm_exec_query_statssys.dm_exec_procedure_stats以查看上次执行计划的时间。但请注意,方法不可靠,因为它没有考虑执行后从缓存中逐出的计划。

答案 2 :(得分:1)

“最新”在多核机器的背景下意味着什么?

另外,他是指最近开始的,还是最近完成的?

最后,他应该打开SSMS并查看Activity Monitor。