0
在SQL Server中,我有一個包含1200萬行和5.6 GB存儲的表(dbo.MYTABLE)。長期更新完成後SQL Server使用的事務日誌空間不會減少
我需要更新每個記錄的varchar(150)字段。
我在WHILE循環中執行UPDATE操作,每次迭代更新50K行。
交易日誌似乎不是每次迭代後免費並不斷增長。 即使在UPDATE過程完成後,也不會返回事務日誌空間。
我的問題是,爲什麼使用的事務日誌空間永遠不會降低,即使UPDATE完成。代碼如下:
DECLARE @MAX_COUNT INT;
DECLARE @COUNT INT;
DECLARE @INC INT;
SET @COUNT = 0;
SET @INC = 50000;
SELECT @MAX_COUNT=MAX(ID) FROM dbo.MYTABLE(NOLOCK)
WHILE @COUNT <= @MAX_COUNT
BEGIN
UPDATE dbo.MYTABLE
SET NEW_NAME = REPLACE(NAME,' X','Y'))
WHERE ID > @COUNT AND ID<=(@COUNT + @INC)
SET @COUNT = (@COUNT + @INC)
END
是您在簡單恢復或完全恢復模式的數據庫? –
有沒有開始交易...提交纏繞此,所以這仍然被視爲一個大交易,並將被記錄。 –
@ G.Davison,數據庫處於完全恢復模式。 –