rowversion列值何时生成?长事务场景下的版本值比较疑问
长事务场景下rowversion列的生成时机分析
首先明确核心规则:SQL Server的rowversion列值,是在事务执行具体的数据修改操作(INSERT/UPDATE/DELETE)的瞬间生成的,和事务的启动时间、整体耗时没有直接关联,只取决于修改操作发生的先后顺序。
针对你给出的场景:
- 事务A:10分钟前启动,耗时8分钟完成——它的修改操作是在启动后到8分钟后(即2分钟前)这个窗口内执行的。
- 事务B:6分钟前启动,仅耗时1分钟完成——它的修改操作在启动后1分钟(即5分钟前)就已经全部执行完毕。
显然事务B的修改操作发生时间更早,因此事务B生成的rowversion值更小。
内容的提问来源于stack exchange,提问作者phil
相关产品推荐
相关产品推荐

