Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » UltraLite - 数据库管理和参考 » UltraLite 简介

 

UltraLite 隔离级别

隔离级别定义一个事务中的操作对其它并发事务中的操作的可见程度。UltraLite 在自动提交模式中使用连接的缺省隔离级别 read-committed。对于 .NET,read-committed 是通过调用无参数 ULConnection.BeginTransaction 创建的新事务的缺省隔离级别。缺省 UltraLite 隔离级别提供最佳性能并确保数据的一致性。

对于 ReadCommitted 隔离级别:

  • 阻止进行脏读

  • 未应用读锁定

  • 可以看到未提交的删除

  • 允许非重复读取和幻像行

  • 无法确保数据在事务执行过程中不发生更改

对于 ReadUncommitted 隔离级别:

  • 允许进行脏读

  • 未应用读锁定

  • 允许非重复读取和幻像行

  • 无法确保并发事务将不会修改行或回退对行所做的更改

您可以从 ReadCommitted 到 ReadUncommitted 更改隔离级别。对于 UltraLite C++,使用 SetDatabaseOption 方法更改隔离级别。对于 UltraLite.NET 2.0,调用 ULConnection.BeginTransaction 来创建具有 ReadUncommitted 隔离级别的事务。UltraLiteJ 只支持 ReadUncommitted 隔离级别。

注意

对于 UltraLite.NET,不建议在事务处于激活状态时执行 SetDatabaseOption。它更改连接的隔离级别,但是不更新 ULTransaction.IsolationLevel。

当事务正在进行中时,不要使用 SetDatabaseOption 更改隔离;可能发生不可预期的结果。


隔离级别的副作用