是否可以使用 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 ;