SQL Server 标识列间隙:回滚后回收值
SQL Server 的标识列会自动为每个新表行生成唯一的序列号。 但是,插入标识列后的事务回滚可能会在序列中留下间隙,从而导致未使用的数字。
问题来了:回滚后这些间隙可以恢复吗? 答案是否定的。 将身份值设为事务性会严重影响并发性,从而导致其他事务出现严重的性能瓶颈。
当事务插入多行并随后因错误而回滚时,分配的标识值不会自动重用。这直接导致了未来插入序列中的间隙。
为了保持一致、无间隙的顺序编号,建议使用替代的自动编号策略。 这些可以包括专用序列表或负责生成和管理唯一序列标识符的单独服务。 这种方法绕过了 SQL Server 标识列在事务场景中的限制。
以上是SQL Server 可以在事务回滚后回收标识序列间隙吗?的详细内容。更多信息请关注PHP中文网其他相关文章!