我有一个查询要我获取有关事务日志 ( .ldf
) 文件的一些基本信息。这里是:
WITH CTE AS
(
SELECT
AllocUnitName,
Operation,
Context,
[Lock Information],
SUM(CONVERT(BIGINT, [Log Record Length])) AS TotalTranLogBytes,
SUM(CONVERT(BIGINT, [Log Record Length])) * 100 /
SUM(CONVERT(MONEY, SUM(CONVERT(BIGINT, [Log Record Length]))))
OVER() AS PercentOfLog
FROM
sys.fn_dblog(NULL,NULL)
GROUP BY
AllocUnitName,
Operation,
Context,
[Lock Information]
)
SELECT
AllocUnitName,
Operation,
Context,
[Lock Information],
TotalTranLogBytes,
PercentOfLog
FROM
CTE
WHERE
PercentOfLog >= 0
ORDER BY
TotalTranLogBytes DESC
不幸的是,我实际上并不理解输出......我主要关心的是查询结果中的最上面一行,它是事务日志中使用的最大空间量,很简单!
但是,还有其他列AllocUnitName
、Operation
和Context
。就我而言,我得到:
dbo.MyMassiveTable.PK_MyMassiveTable LOP_MODIFY_ROW LCX_TEXT_MIX 3848564 61.6838
...作为我的输出。但是在 EARTH 上LOP_MODIFY_ROW
,LCX_TEXT_MIX
实际上是什么意思?
显然我可以模糊地理解它与该表的主键有关,它与 UPDATE 命令相关联,并且文本列发生了一些事情?
但我需要精确!
任何可以帮助我理解为什么事务日志的这个特定部分如此庞大的人都会有很大的帮助!