Table 加载简单模型仍会写入日志
Table loading on Simple model still writes to log
我在 SqlServer 2012 Enterprise 上有一个数据库,恢复模式设置为 'Simple'。
当数据被推入其中并检查服务器上的资源监视器时,我看到 MyDB_dat.mdf 以 20MB/秒的速度写入,而 MyDB_log.ldf 以 30MB/秒的速度写入。
两个文件都是单独的磁盘。
我删除了除聚集索引之外的所有索引。
如何在日志文件中阻止此 IO?数据库是完全冗余的,所以我不太关心日志。
你不能。在简单恢复模式下,您仍然可以执行 BEGIN TRAN 然后 COMMIT/ROLLBACK,更重要的是每个语句都是事务性的,因此所有内容都必须写入日志。关于简单恢复模式的事情是,一旦事务(或语句)完成,就会重新使用日志 space - 无需等待日志备份完成。
在简单模式下,出现检查点时日志会被截断。如果不写入日志文件,就无法在 SQL 服务器中写入(或更新)。索引的数量和类型只会影响 SQL 服务器找到相关行的速度。您需要提交后跟检查点(自动发生或通过脚本发出 'checkpoint' 命令)才能截断日志。
我在 SqlServer 2012 Enterprise 上有一个数据库,恢复模式设置为 'Simple'。
当数据被推入其中并检查服务器上的资源监视器时,我看到 MyDB_dat.mdf 以 20MB/秒的速度写入,而 MyDB_log.ldf 以 30MB/秒的速度写入。
两个文件都是单独的磁盘。 我删除了除聚集索引之外的所有索引。
如何在日志文件中阻止此 IO?数据库是完全冗余的,所以我不太关心日志。
你不能。在简单恢复模式下,您仍然可以执行 BEGIN TRAN 然后 COMMIT/ROLLBACK,更重要的是每个语句都是事务性的,因此所有内容都必须写入日志。关于简单恢复模式的事情是,一旦事务(或语句)完成,就会重新使用日志 space - 无需等待日志备份完成。
在简单模式下,出现检查点时日志会被截断。如果不写入日志文件,就无法在 SQL 服务器中写入(或更新)。索引的数量和类型只会影响 SQL 服务器找到相关行的速度。您需要提交后跟检查点(自动发生或通过脚本发出 'checkpoint' 命令)才能截断日志。