使用 SQL Anywhere 可以控制一个事务中的操作对其它并发事务中的操作的可见程度。方法是设置名为隔离级别的数据库选项。
SQL Anywhere 还允许您使用相应的表提示控制查询中单个表的隔离级别。
SQL Anywhere 提供以下隔离级别:
此隔离级别…… | 具有这些特征…… |
---|---|
0—读取未提交数据 |
|
1—读取已提交数据 |
|
2—可重复读取 |
|
3—可序列化 |
|
快照1 |
|
语句快照1 |
|
只读语句快照1 |
|
1 必须为数据库启用快照隔离,方法是将数据库的 allow_snapshot_isolation 选项设置为 On。
缺省隔离级别为 0,但 Open Client、jConnect 和 TDS 连接除外,它们的缺省隔离级别为 1。
基于锁的隔离级别可以防止部分或全部干扰。级别 3 是最高隔离级别。较低的级别允许的不一致也较多,但通常性能会更高。级别 0(读取未提交数据)为缺省设置。
快照隔离级别可以防止读取和写入操作之间的所有干扰。但写入操作之间仍可能会相互干扰。此级别几乎不会出现不一致的情况,其争用性能与隔离级别 0 相同。由于需要保存和使用行的不同版本,因此与争用无关的性能会变差。
所有隔离级别都确保每个事务或者完全执行,或者根本不执行,并且不会丢失任何更新。
隔离仅在事务之间执行:同一事务中的多个游标不能互相干扰。
快照隔离
典型的不一致类型
设置隔离级别
启用了 ODBC 的应用程序中的隔离级别
查看隔离级别
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |