检查点和事务提交之间的关系是什么

时间:2019-06-27 09:54:51

标签: sql-server transactions

我的课本说:

检查点是一项定期操作,它强制将当前正在使用的数据库的所有脏页都写入磁盘

我很困惑。我知道缓存的工作方式是什么,关于脏页?如果将脏页写入磁盘,那不是应该执行的提交吗?检查点如何将数据实际“提交”到物理页面?

假设我们有以下代码;

BEGIN TRAN T1;  
UPDATE table1 
SET postcode = '9000'  //was 8000 before
WHERE CustomerID = 1;
COMMIT TRAN T1;

这是我不了解的地方,首先将记录(CustomerID = 1,邮政编码8000)读入缓存,然后用update语句在缓存脏页中创建记录(因为我们更改了邮政编码),现在发生了检查点,然后将此记录写入mdf / ndf,这不是像旨在使更改在数据库中永久保存的提交吗?并没有涉及日志文件吗?

有人可以以这个例子为指导我实际发生什么以及如何将新的邮政编码9000永久写入数据库吗?

0 个答案:

没有答案