我正在研究SQL Server READ COMMITTED SNAPSHOT
和SNAPSHOT
隔离级别之间的差异,并且遇到了以下资源:
对于大多数应用程序,由于以下原因,建议使用行版本控制的读取提交隔离而不是快照隔离:
与快照隔离相比,它占用的tempdb空间更少。
快照隔离很容易受到更新冲突的影响,这些更新冲突不适用于使用行版本控制读取已提交的隔离。当在快照隔离下运行的事务读取数据,然后由另一个事务修改该数据时,快照事务对同一数据的更新将导致更新冲突,并且该事务终止并回滚。使用行版本控制的读取提交隔离不是问题。
我对这些主题有些陌生,但是我似乎无法理解上面链接中的两个要点。
对于这些模式,为什么tempdb空间会有所不同?一个存储比另一个存储更多的粒度版本吗?
为什么快照隔离更容易受到更新冲突的影响?