我使用 SQL Server 2008 R2,我的问题是使用名为 LogStats 的数据库。
如果我执行此查询:
select *
from ExceptionRow
inner join HashFP ON ExceptionRow.Hash=HashFP.FingerPrintMD5
where ExceptionRow.Message is null
AND not HashFP.MessageFP is null
我有 126708 次点击,需要 2.05 分钟。但优化不是我的问题。
我想将数据从 HashFP.MessageFP 复制到 ExceptionRow.Message 而不覆盖任何数据。我试试这个:
UPDATE ExceptionRow
SET Exceptionrow.Message = HashFP.MessageFP
FROM ExceptionRow
INNER JOIN HashFP ON ExceptionRow.Hash=HashFP.FingerPrintMD5
WHERE ExceptionRow.Message IS NULL
AND NOT HashFP.MessageFP IS NULL
结果:
消息 9002,级别 17,状态 4,第 1 行 数据库“LogStats”的事务日志已满。要找出日志中的空间不能被重用的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列
我试过这个:
SELECT name,log_reuse_wait_desc FROM sys.databases
从结果来看
tempdb ACTIVE_TRANSACTION
LogStats ACTIVE_TRANSACTION
我怎样才能中止那些活动的事务,以便任务能够成功?