在SQL Server 2008中有没有办法禁用事务日志或清除日志文件?
当我在我的项目中执行一个查询(在事务方面非常大)时,此日志文件的大小将增加(2到3 GB)。
请建议我一些不错的选择。
答案 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