配置事务隔离级别
通过允许可配置事务隔离级别,COM+ 使开发人员能够更好地控制其应用程序。 COM+ 1.5 之前的 COM+ 版本始终对事务使用最高级别的隔离。 虽然此级别可保证始终保留数据完整性,但当需要对大型数据库执行许多事务时,可能会导致性能问题,例如超时。 借助可配置隔离级别,经验丰富的开发人员可以提高并发性,以提高性能和可伸缩性。
COM+ 提供以下事务隔离级别。
Level | 说明 |
---|---|
序列化 | 在当前事务完成前,当前事务读取的数据不能由另一个事务更改。 无法插入任何会影响当前事务的新数据。 这是最安全的隔离级别,是默认值。 |
可重复读 | 在当前事务完成前,当前事务读取的数据不能由另一个事务更改。 可以在事务期间插入任何类型的新数据。 |
已提交读 | 事务无法读取另一个未提交的事务正在修改的数据。 这是 Microsoft SQL Server 中的默认隔离级别。 |
未提交读 | 事务可以读取任何数据,即使另一个事务正在修改数据也是如此。 这是最不安全的隔离级别,但允许最高的并发性。 |
任意 | 支持任何隔离级别。 此设置最常由下游组件使用,以避免冲突。 此设置很有用,因为为任何下游组件配置的隔离级别都必须等于或小于其直接上游组件的隔离级别。 因此,隔离级别配置为“任意”的下游组件始终使用其直接上游组件使用的相同隔离级别。 如果事务中的根对象将其隔离级别配置为“任意”,则其隔离级别将变为“序列化”。 |
注意
如果为下游组件配置的隔离级别高于上游组件,并尝试在事务中登记,则会产生错误并中止事务。
相关主题