代码之家  ›  专栏  ›  技术社区  ›  Hardryv

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

  •  6
  • Hardryv  · 技术社区  · 15 年前

    我的一个开发人员在SQL Server 2008中使用了一个基于触发器的日志记录工具,他问我是否有一个命令来检索 最近执行的SQL命令 在T-SQL中。我以为只有这样一个函数才有一个系统存储过程,但我可能在考虑前十年的另一个产品…网上搜索没有结果。

    有人知道这类事情吗?

    3 回复  |  直到 15 年前
        1
  •  19
  •   Sadegh    15 年前

    当然可以试试这个:

    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
    

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

        2
  •  4
  •   Remus Rusanu    15 年前

    那么,检索最新SQL批处理的过程可以安全地返回自身:)

    认真地说,你可以看看 sys.dm_exec_query_stats sys.dm_exec_procedure_stats 查看上次执行计划的时间,基于 last_execution_time 列。但请注意,该方法 不可靠 因为它不考虑执行后从缓存中收回的计划。

        3
  •  1
  •   John Saunders KB22    15 年前

    在多核机器的上下文中,“最近”是什么意思?

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

    最后,他应该打开SSMS并查看活动监视器。