在SQL Server中经常遇到事务日志变大的情况,除了将数据库设置为“自动收缩”外,还可以使用下面的SQL命令进行快速清除数据库中的事务日志,命令如下:
第一步:清空日志
以下是引用片段:
DUMP TRANSACTION
databasename
WITH
NO_LOG
第二步:截断事务日志
以下是引用片段: BACKUP LOG databasename WITH NO_LOG |
第三步:收缩数据库
以下是引用片段:
DBCC SHRINKDATABASE(databasename)
需要说明几点:
1. 上面的SQL命令需要按照顺序执行;
2. 执行上面的命令通常比直接使用右键菜单中的“收缩”命令要快很多
下面我们执行语句(建议执行前先备份一下数据库,防止意外):
以下是引用片段:
DUMP Transaction databasename with no_log
backup log databasename with no_log
dbcc shrinkdatabase(databasename)
这样日志文件和数据库文件都压缩完了。