本文主要分享一下事务在sqlserver中的执行流程。
注意,这里只谈论流程,不涉及锁的信息,关于锁的信息,稍后会有专门的文章讨论。
事务的执行流程如下,从01步到08步。
1,sqlserver接受到事务请求
2,存储引擎开始一个事务(具有唯一的事务标识),并且把事务日志写入缓存log buffer
3,存储引擎把事务的数据写入缓存db buffer
4,当步骤3完成以后,存储引擎把缓存日志时的事务标识commit
5,把log buffer中的日志写盘
6,日志写到磁盘完成以后,存储引擎返回给客户端事务提交成功(注意,此时数据并没有真正的写到磁盘上)。
7,等待触发checkpoint或者lazy write
8,数据写入磁盘