0

有什么方法可以在不将其记录到日志文件的情况下进行 DML 操作?

例如,当我在数据库中插入一行时,无论是否使用事务,此操作都将记录在日志文件中。但我不想在日志文件中记录这个操作。

4

2 回答 2

4

没有永不。不可能。

每个操作都被记录下来是有原因的:如果它中途失败了怎么办?服务器崩溃?等等等等

总结:ACID中的 A、C 和 D

如果你不想要这个,那么使用我真的会考虑使用非 ACID NoSQL 替代品。

于 2010-10-03T10:55:44.213 回答
0

SQL Server 将始终将插入写入日志文件。当服务器重置时,它需要该信息才能将数据库恢复到一致的状态。

您可以通过选择恢复模式来更改日志记录的影响:

alter database YourDb set recovery { FULL | BULK_LOGGED | SIMPLE } 

在简单模式下,SQL Server 只记录正在运行的事务,并开始重用不再需要的部分日志。在简单模式下,日志文件通常很小。

如果要在插入操作后删除日志,可以使用:

alter database YourDb set recovery simple with no_wait
dbcc shrinkfile(YourDbLog, 1)
alter database YourDb set recovery <<old model here>>

请注意,这会删除所有日志。运行此命令后,您只能使用恢复上次完整备份。

于 2010-10-03T11:15:30.023 回答