Sql-Server

使用百分比的事務日誌空間 - 如何清除或清空

  • February 8, 2021

我正在嘗試了解有關事務日誌的更多資訊,我認為這是許多進行數據修改的儲存過程(用於報告)的瓶頸。

所以我在下面嘗試:

select * from sys.dm_db_log_space_usage;
update dbo.A
set col1 = 'hello'
where id < 500000;
select * from sys.dm_db_log_space_usage;

所以現在使用的日誌文件是 1.8%。我怎樣才能清除它?我想當事務是committed它重置為“零”(“它”是指使用的事務日誌的百分比)。我試過“檢查點”,但沒有幫助。

日誌文件在內部分為幾個虛擬日誌文件。使用百分比基於此。例如,如果您有 4 個大小相同的 VLF,則使用率永遠不會低於 25%。總是有日誌的頭部並且 VLF 正在使用中。

即使只使用一個 VLF,百分比也可能不同,因為同一個 ldf 文件中的 VLF 可以具有不同的大小。

DBCC LOGINFO 將告訴您哪些 VLF 正在使用中。狀態欄。2 表示使用中,0 表示未使用。

如果你有多個 VLF 在使用,那麼 sys,databases 中的 log_reuse_wait_desc 列會告訴你為什麼SQL Server 有多個在使用。是在等待日誌備份嗎?複製能阻止它嗎?等等。

引用自:https://dba.stackexchange.com/questions/284897