过去查询的 SQL 跟踪

过去查询的 SQL 跟踪

是否可以使用 SQL 2005 Server Profiler 来跟踪 6 小时前发生的查询?或者跟踪仅用于实时?我正在尝试找到一种查看旧 TSQL 查询的方法。使用 SQL 2005 可以做到这一点吗?

答案1

简单的问题,简单的答案:不。这是实时的。

答案2

跟踪仅是实时的,但如果您以后想对数据库进行一些审计,则可能需要设置触发器。 http://msdn.microsoft.com/en-us/library/ms189799.aspx

答案3

Profiler 捕获实时事件,因此过去的事件已经消失。

您可以查看过程缓存中的一些过去信息,但这不是完整的查询日志:

SELECT [cp].[refcounts] 
, [cp].[usecounts] 
, [cp].[objtype] 
, [st].[dbid] 
, [st].[objectid] 
, [st].[text] 
, [qp].[query_plan] 
FROM sys.dm_exec_cached_plans cp 
CROSS APPLY sys.dm_exec_sql_text ( cp.plan_handle ) st 
CROSS APPLY sys.dm_exec_query_plan ( cp.plan_handle ) qp ;

相关内容