为什么即使没有提交事务,日志文件也会增长?

luk*_*ski 2 sql-server transaction-log

以下是我所做的:

  1. 以简单恢复模式创建数据库。
  2. 创建的表。
  3. 开始 tran 并插入如此多的行以超过日志文件的大小。
  4. 提交了交易。

在第 4 步之前,我注意到日志文件在增长,这让我很困惑。为什么会这样?

根据 MSDN:

对于每个逻辑写入,事务日志记录都会插入记录修改的日志缓存中。

进而:

提交事务时将日志记录写入磁盘。

那么如何解释插入数据时日志文件不断增长的事实,即使没有提交事务?

据我了解,未提交的日志记录应该存储在日志缓冲区中,而不是存储在磁盘上。

Dan*_*man 8

当日志缓冲区变满时,事务日志记录会被刷新,这就是您在最终COMMIT. 提交持久事务时也会刷新缓冲区,以保证持久性。