Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用事务和隔离级别

选择隔离级别


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

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

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

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

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


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

Collection Contents 上一页 下一页 PDF