首页 新闻 赞助 找找看

请问下sqlserver事务提交的时候都发生了什么?

0
悬赏园豆:10 [待解决问题]

 简单来说,比如在事务中update一个字段,
 1.先将数据从磁盘读到缓存中,然后修改数据。这个数据在没有被刷新到磁盘的时候是脏页。

 2.commit事务,缓存中的日志被写到磁盘日志文件中,释放在数据row上的锁,此时事务结算。(脏页不一定这个时间被刷新到磁盘)

 

 问题是: 有没有可能出现,事务提交后,select这条数据并没有读到修改后的数据?

 

常山造纸农的主页 常山造纸农 | 初学一级 | 园豆:192
提问于:2017-10-09 09:50
< >
分享
所有回答(2)
0

同问,我想问问回答的大神,你是从哪知道这种知识的

猝不及防 | 园豆:2731 (老鸟四级) | 2017-10-09 10:22
0

事务的acid再看下,都提交了读取不到这个不是事务的锅。

Daniel Cai | 园豆:10424 (专家六级) | 2017-10-09 11:08

请教下大神,

事务提交后,脏页一定会被刷新到磁盘吗? 我看很多博客上说,事务提交成功,只保证缓存日志成功写入到日志文件。 不太理解这个的工作原因。

支持(0) 反对(0) 常山造纸农 | 园豆:192 (初学一级) | 2017-10-09 11:20

@常山造纸农: 不知道,一介码农不关心这些东西,对于我而言我只需要知道事务的大体逻辑及结论足以,这种问题我是建议你还是到itpub这样的更专业的地方问下。

支持(0) 反对(0) Daniel Cai | 园豆:10424 (专家六级) | 2017-10-09 11:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册