Simple模型上的表加载仍写入日志

时间:2015-03-02 15:22:24

标签: sql-server sql-server-2012 etl

我在SqlServer 2012 Enterprise上有一个数据库,其恢复模型设置为“简单”。

当数据被推入它并检查服务器上的资源监视器时,我看到MyDB_dat.mdf被写入20MB /秒,而MyDB_log.ldf被写入30MB /秒。

这两个文件都是独立的磁盘。 我删除除群集之外的所有索引。

如何在日志文件中阻止此IO?数据库是完全冗余的,所以我不在乎日志。

2 个答案:

答案 0 :(得分:1)

你不能。在简单恢复模式下,您仍然可以执行BEGIN TRAN然后执行COMMIT / ROLLBACK,更重要的是每个语句都是事务性的,因此必须将所有内容写入日志。关于简单恢复模式的事情是,只要事务(或语句)完成,就会重新使用日志空间 - 在日志备份完成之前不会等待。

答案 1 :(得分:1)

在简单模式下,Logs会在检查点发生时截断。没有写入日志文件就无法在SQL Server中编写(或更新)。索引的数量和类型仅影响SQL Server查找相关行的速度。您需要提交后跟检查点(自动发生或通过让脚本发出'checkpoint'命令)来截断日志。