了解有关事务日志的提交过程

时间:2011-09-12 14:02:39

标签: sql-server

我有关于sql server 2005-08的事务日志的查询。何时将事务写入事务日志。它是在写入日志文件之前写入数据文件还是在提交到数据库之前首先写入日志文件。

由于

2 个答案:

答案 0 :(得分:4)

首先将其写入日志文件。这个原则称为Write Ahead Logging

如果发生相反的情况并且在日志之前将数据写入数据文件,则无法可靠地从崩溃中恢复。

答案 1 :(得分:4)

正如马丁所说,只要你提交交易,它就会被写入日志。在checkpoint过程中,脏页(即已修改的数据)将异步写入数据文件。

这也是交易可以极大地提高性能的原因。如果你有一个紧密的循环,它在每次迭代时自己执行一个insert语句,那么每次迭代都会在写入日志时有效地命中磁盘。如果你改为在循环之外打开一个事务,那么磁盘将只被命中一次,因为之后提交了事务。