如何在SQL Server 2008中禁用事务日志

时间:2012-01-04 08:18:58

标签: sql-server-2008

在SQL Server 2008中有没有办法禁用事务日志或清除日志文件?

当我在我的项目中执行一个查询(在事务方面非常大)时,此日志文件的大小将增加(2到3 GB)。

请建议我一些不错的选择。

4 个答案:

答案 0 :(得分:8)

无法禁用SQL Server中的事务日志。没门。

您可以切换到简单恢复模式

ALTER DATABASE YourDatabase SET RECOVERY SIMPLE

会记录更少 - 但事务日志是SQL Server中的一个基本核心概念,你不能只关闭它。

答案 1 :(得分:3)

你可以缩小它

DECLARE @sql NVARCHAR(MAX) = ''
SELECT @sql = @sql + N'DBCC SHRINKFILE('+CAST(file_id AS NVARCHAR)+N', 0);' 
FROM sys.database_files
WHERE type = 1

EXEC(@sql)

但是它仅适用于简单恢复模式,而是您必须备份日志然后将其缩小

即使您的数据库处于只读模式,也无法删除所有的日志文件。

AND 尝试在处理sql server的数据库时重新设计和检查您的方法。缩小文件不是正确的选择或最佳做法 - 特别是定期!

答案 2 :(得分:2)

您无法禁用事务日志。

如果您的日志需要大3GB,那么就这样吧。如果你缩小它,那么它会再次增长并导致其他问题。

如果是一次性的话,你可以通过

缓解增长

答案 3 :(得分:0)

将恢复模式更改为:simple

ALTER DATABASE myDB SET RECOVERY SIMPLE

并运行

DBCC SHRINKFILE (MyLog, 1); // to 1 MB

但是从哪里获得日志名称?

sp_helpdb MyDb