sql-server - 即席只读查询是否存储在 SQL Server 事务日志中?

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

在数据库恢复模型配置为 full 的 SQL Server 2008 中,查询如下:

select col1,col2,col3 from TableName

记录到事务日志文件。

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

最佳答案

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

你可以试试

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

查看记录的内容。

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

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

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

关于sql-server - 即席只读查询是否存储在 SQL Server 事务日志中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5516358/

相关文章:

SQL表数据水平使用PIVOT

sql-server - 更新具有相同值的表会增加事务日志文件的大小吗?

sql-server - 当没有数据时tsql填充xml标签

mysql - PrestaShopDatabaseException MySQL 服务器在迁移到 VPS 后消失了

sql - 在列名旁边编写带有值的 INSERT 语句?

sql varchar(max) 与 varchar(fix)

c# - 为什么我从存储过程中得到-1?

sql四舍五入到5的倍数?

sql-server-2008 - Microsoft SQL Server 2008 日志分析

azure-eventhub - Event Hub是否打算用于事件源/仅追加日志架构