在SQL Server中經常遇到事務日志變大的情況,除了將數據庫設置為“自動收縮”外,還可以使用下面的SQL命令進行快速清除數據庫中的事務日志,命令如下:
- 第一步:清空日志
DUMP TRANSACTION
databasename
WITH
NO_LOG
-- 第二步:截斷事務日志
BACKUP LOG
databasename
WITH
NO_LOG
-- 第三步:收縮數據庫
DBCC SHRINKDATABASE(databasename)
需要說明幾點:
1. 上面的SQL命令需要按照順序執行;
2. 執行上面的命令通常比直接使用右鍵菜單中的“收縮”命令要快很多
執行語句(建議執行前先備份一下數據庫,防止意外):
DUMP Transaction dnn with no_log
backup log dnn with no_log
dbcc shrinkdatabase(dnn)