從SQL Server數據庫表中刪除大量數據後,數據庫大小增加。從表中刪除後數據庫大小變大
當我運行sp_spaceused
它顯示我2625.25 MB。在我從表中刪除之前,它曾經是〜1800.00 MB。
即使我刪除數據,它是否有任何特定的原因會持續增長?
從SQL Server數據庫表中刪除大量數據後,數據庫大小增加。從表中刪除後數據庫大小變大
當我運行sp_spaceused
它顯示我2625.25 MB。在我從表中刪除之前,它曾經是〜1800.00 MB。
即使我刪除數據,它是否有任何特定的原因會持續增長?
臨時事務日誌通常是大量刪除後大小顯着增加的原因。
它最終會自行消失,但如果您需要回收空間,您可能會刪除這些文件。
我假設你正在使用SQL Server(sp_spaceused
)。記錄刪除,所以你的日誌文件已經增長。
參見如何截斷日誌SQL Server 2008 log will not truncate(取決於您的數據庫和恢復模式),然後就可以運行
DBCC SHRINKFILE(N)
收回失去的空間
編輯按@Aaron,截斷也是一個記錄操作。答案已更正。
TRUNCATE也記錄了。人們在哪裏瞭解TRUNCATE未記錄的這些神話? –
@Aaron謝謝你指出這一點。我相信我知道我在哪裏找到了這種誤解 - SQL 2000和以前的命令'BACKUP LOG DB WITH TRUNCATE_ONLY'可能將我的(和其他的)突觸與繞過日誌記錄的「截斷」相關聯。 – StuartLC
[截斷雖然明顯少了日誌](http://dba.stackexchange.com/a/7677/3690) –
我不知道tsql,但它可能只是一個臨時事務日誌。 –
這正是我刪除臨時文件後現在就可以的原因。謝謝! http://stackoverflow.com/questions/56628/how-do-you-clear-the-transaction-log-in-a-sql-server-2005-database –
我使它成爲一個社區wiki答案(沒有重點給我;) –