ad-hoc只读查询是否存储在SQL Server事务日志中?

时间:2011-04-01 16:46:49

标签: sql-server sql-server-2008 transaction-log

在SQL Server 2008中,数据库恢复模型配置为full,是

等查询
  

从TableName中选择col1,col2,col3

记录到事务日志文件。

换句话说,我可以使用事务日志备份确定特定日期在数据库上运行的查询吗?

1 个答案:

答案 0 :(得分:5)

没有。事务日志根本不记录查询。它只记录前滚或回滚事务所需的信息(而SELECT查询根本不会生成任何记录的活动)

你可以尝试

select top 100 *
from sys.fn_dblog(default,default)

看一下录制的东西。

如果您需要此类信息,则需要设置跟踪/扩展事件会话/ audit sessio n来记录它。在大多数环境中,这可能是非常重的重量。

您可以使用以下内容来大致了解正在运行的adhoc查询。

SELECT text 
from sys.dm_exec_cached_plans
cross apply sys.dm_exec_sql_text(plan_handle)
where objtype='Adhoc'