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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 事务和隔离级别

 

有关选择隔离级别的原则

选择哪个隔离级别取决于应用程序执行哪类任务。本节提供了一些有关选择隔离级别的指导。

要选择适当的隔离级别,必须在对一致性和准确性的需求与不受阻碍地执行并发事务的需求之间找到平衡点。如果一个事务只涉及一个表中的一两个特定值,而另一个事务搜索许多大型表并因此可能需要锁定许多行或整个表,且可能需要很长时间才能完成,那么前者对其它进程的干扰通常要比后者少。

例如,如果您的事务涉及在银行帐户间转帐,则必须尽可能地确保返回的信息正确。但是,如果只需要粗略地估计不活动帐户所占的比例,则可能不会介意该事务是否等待其它事务,而且可能愿意牺牲一些准确性,以避免干扰该数据库的其他用户。

此外,转帐可能只会影响包含两个帐户余额的那两行,而要计算不活动帐户的比例则必须读取所有帐户。因此,转帐延迟其它事务的可能性更小。

SQL Anywhere 提供了四个隔离级别:级别 0、1、2 和 3。级别 3 提供完全隔离,并确保以可序列化调度的方式交错执行事务。

如果已为数据库启用了快照隔离,则可以使用三个附加隔离级别:快照、语句快照和只读语句快照。

 选择快照隔离级别
 另请参见

可序列化调度
各个隔离级别的典型事务
提高隔离级别 2 和 3 的并发性
关于减小锁定影响的提示