У меня есть запрос, чтобы получить мне некоторую базовую информацию о файле журнала транзакций (.ldf
). Вот оно:Пояснение для вывода функции fn_dblog() на SQL Server 2008 R2
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
... как мой выход. Но что на ЗЕМЛЕ LOP_MODIFY_ROW
, а LCX_TEXT_MIX
на самом деле СРЕДНИЕ?
Очевидно, я могу смутно понять, что это как-то связано с первичным ключом для этой таблицы, что оно связано с командой UPDATE и что что-то происходит со столбцом Text?
Но мне нужна точность!
Любой, кто может помочь мне понять, почему эта конкретная часть журнала транзакций настолько ОГРОМНАЯ, будет большой помощью!