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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 创建数据库 » 使用事务和隔离级别 » 锁定的工作方式

 

较早释放读锁定

处于隔离级别 3 时,事务在它读取的每一行上获取一个读锁定。通常,事务从不在其结束之前释放锁定。实际上,如果要使调度可序列化,事务就不能过早释放锁定。

SQL Anywhere 总是将写锁定一直保留到事务完成时。这可以防止其它事务修改该行,以免无法回退第一个事务。

只有在一种情况下才会释放读锁定:处于隔离级别 1 时,事务仅在某一行成为游标的当前行时,才在该行上获取读锁定。但是,处于隔离级别 1 时,当该行不再是当前行后,锁定将被释放。这一行为是可以接受的,因为数据库服务器在隔离级别 1 上不需要确保可重复的读取。

有关隔离级别的详细信息,请参见选择隔离级别