Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用事务和隔离级别

隔离级别和一致性


有四个隔离级别 

使用 Adaptive Server Anywhere 可以控制一个事务中的操作对其他并发事务中的操作的可见程度,方法是设置名为隔离级别的数据库选项。

Adaptive Server Anywhere 提供了以下四种不同的隔离级别:

此隔离级别… 具有这些特征…
0—未提交的读操作
  • 允许读取有写锁定或无写锁定的行
  • 未应用读锁定
  • 无法确保并发事务将不会修改行或回退对行所做的更改
1—已提交的读操作
  • 只允许读取没有写锁定的行
  • 仅为读取当前行获取并保持读锁定,但当游标离开该行时释放读锁定
  • 无法确保数据在事务执行过程中不发生更改
2—可重复的读操作
  • 只允许读取没有写锁定的行
  • 读取结果集中的每一行时获取读锁定,并一直保持到事务结束为止
3—可序列化
  • 只允许读取结果中没有写锁定的行
  • 打开游标时获取读锁定,并一直保持到事务结束为止

这些隔离级别能阻止部分或全部干扰。级别 3 是最高隔离级别。较低的级别允许的不一致也较多,但通常性能会更高。级别 0(未提交的读操作)为缺省设置。

注意 
所有隔离级别都确保每个事务或者完全执行,或者根本不执行,并且不会丢失任何更新。

隔离仅在事务之间执行:同一事务中的多个游标可能互相干扰。


典型的不一致类型
设置隔离级别
查看隔离级别

Collection Contents 上一页 下一页 PDF