分类: 数据库开发技术
2009-07-09 16:36:49
确定使用基于行版本控制的隔离需要对比最小化锁定的并发好处与维护和读取行版本所需增加的资源使用量。考虑下列与启用用于快照和已提交读隔离级别的行版本控制关联的开销:
注意: |
---|
通常,插入行不会生成行版本。但是,在某些情况下,INSERT 命令确实可以生成行版本。例如,如果在前一个删除的行版本(虚影记录)尚未截断时将行插入具有唯一索引的表中,则 INSERT 命令将生成行版本。 |
使用行版本控制的事务还有其他限制。有关详细信息,请参阅。
行版本的劣势:
1、In addition to requiring extra management to monitor the increased use of tempdb for the version store,
2、versioning slows the performance of update operations due to the extra work involved in maintaining old versions
Update operations will bear this cost, even if there are no current readers of the data。
可能的隐患:
并发更新的限制?
In addition, because the optimistic concurrency model of Snapshot isolation assumes (optimistically) that not many update conflicts will occur, you should not choose the Snapshot isolation level if you are expecting contention for updating the same data concurrently