[20140403]查询是否产生日志

今天群里讨论查询是否产生日志,当然在用户数据库里面是不产生的,但是涉及到tempdb的查询呢?

小弟认为是在tempdb产生了日志:

USE tempdb

DECLARE  @lsn nvarchar(100)
SELECT TOP 1 @lsn = [Current LSN]
FROM fn_dblog (NULL, NULL) ORDER BY [Current LSN] DESC;
select @lsn

SELECT * FROM AppServerProcesses.dbo.DB_PerformanceCounter ORDER BY addtime DESC


SELECT TOP 100 *
FROM fn_dblog (NULL, NULL) WHERE [Current LSN] >= @lsn 
ORDER BY [Current LSN] DESC;
GO

当然运行代码前,先测试一下是否有其他操作会影响tempdb日志

从上图可以看出 Transcation Name 为ExtenDeallocForSort,小弟认为是在tempdb上产生了日志了。

当然引用paul大师的文章佐证:http://www.sqlskills.com/blogs/paul/understanding-data-vs-log-usage-for-spills-in-tempdb/

原文地址:https://www.cnblogs.com/Amaranthus/p/3642725.html