读取提交的快照隔离和事务
Posted
技术标签:
【中文标题】读取提交的快照隔离和事务【英文标题】:Read Committed Snapshot Isolation and Transactions 【发布时间】:2013-06-07 13:50:33 【问题描述】:我正在考虑在我们的 SQL 2005 数据库上启用读取已提交快照隔离,以尝试获得一些性能。设置此隔离级别是否会影响所有查询,无论它们是否使用 BEGIN TRAN 和 COMMIT TRAN?根据 MSDN:
“启用快照隔离后,每个事务的更新行版本都会在 tempdb 中维护。”
我不清楚“事务”是指所有 sql 查询还是仅表示使用事务的查询。
【问题讨论】:
【参考方案1】:每个(有用的)语句在事务中运行。如果在运行特定查询时没有打开的查询,则默认情况下 SQL Server 会打开一个,运行查询,然后提交它。这称为Autocommit mode。
可以更改此行为,使其不会自动执行第三步(提交)并使事务保持打开状态。这称为Implicit Transaction Mode。
【讨论】:
所以即使我的查询没有使用隐式事务,我也可以使用 RCSI?以上是关于读取提交的快照隔离和事务的主要内容,如果未能解决你的问题,请参考以下文章