使用快照隔离时,如果事务查看行的旧版本并尝试更新或删除它,则可能发生更新冲突。发生这种情况时,服务器会在检测到冲突时给出错误。对于已提交的更改,服务器在尝试更新或删除时返回错误。对于未提交的更改,在更改提交时,更新或删除会阻塞并且服务器会返回错误。
使用只读语句快照时不会发生更新冲突,因为可更新语句以非快照隔离方式运行,并且总是看到数据库的最新版本。因此,只读语句快照隔离级别具有快照隔离的许多优点,且无需对最初设计为在其它隔离级别上运行的应用程序做很大改动。使用只读语句快照隔离级别时:
只读语句从不获取读锁定
只读语句总是查看数据库的已提交状态
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |