SQL Server 2005
我运行了“dbcc SQLPerf(logspace)”,然后进行了两次日志备份,然后再次运行“dbcc SQLPerf(logspace)”。尽管“dbcc opentran (foo)”表示没有活动的打开事务,但与使用的 48.55% 相比没有变化。
这是否意味着存在阻止日志可用空间在备份后更改的非活动打开事务?
谢谢。
我有一个 20 GB 的数据库,它的事务日志坚持超过 7 GB。
当我使用此脚本找出该数据库中最大对象的大小时,我发现它们相对较小。
我一直在使用默认跟踪来查看此事务日志何时自动增长,但我没有发现。
DECLARE @path NVARCHAR(260);
SELECT
@path = REVERSE(SUBSTRING(REVERSE([path]),
CHARINDEX(CHAR(92), REVERSE([path])), 260)) + N'log.trc'
FROM sys.traces
WHERE is_default = 1;
SELECT
DatabaseName,
[FileName],
SPID,
Duration,
StartTime,
EndTime
FROM sys.fn_trace_gettable(@path, DEFAULT)
WHERE EventClass = 93 -- log autogrow event
ORDER BY StartTime DESC;
Run Code Online (Sandbox Code Playgroud)
我还尝试了这里的一些脚本,以检查哪些事务正在填充日志,但找不到任何事务。
我相信一定有一些非常长的事务同时进行,或者至少有一个较长的事务正在执行。
我怎样才能检查这些(long transactions in the database)?
在 LIVE 中,这是一个完整恢复模式数据库,是alwayson 的一部分。在 TEST 中,这是一个简单的恢复模式数据库,但由于所有作业都在那里,日志仍然增长到 7GB。
sql-server optimization transaction transaction-log sql-server-2016