DB2 SQL RR/RS/CS/UR四个级别(转)
1.RR隔离级别:在此隔离级别下, DB2会锁住所有相关的纪录。在一个SQL语句执行期间,所有执行此语句扫描过的纪录都会被加上相应的锁。具体的锁的类型还是由操作的类型来决定,如果是读取,则加共享锁;如果是更新,则加独占锁。由於会锁定所有為获得SQL语句的结果而扫描的纪录,所以锁的数量可能会很庞大,这个时候,索引的增加可能会对SQL语句的执行有很大的影响,因為索引会影响SQL语句扫描的纪录数量。 2.RS隔离级别:此隔离级别的要求比RR隔离级别稍弱,此隔离级别下会锁定所有符合条件的纪录。不论是读取,还是更新,如果SQL语句中包含查询条件,则会对所有符合条件的纪录加相应的锁。 如果没有条件语句, 也就是对表中的所有记录进行处理,则会对所有的纪录加锁。 3.CS隔离级别:此隔离级别仅锁住当前处理的纪录。 4.UR隔离级别:此隔离级别下,如果是读取操作,不会出现任何的行级锁。 对于非只读的操作,它的锁处理和CS相同。 DB2默认的隔离级别是CS。 DB2默认的隔离级别是CS。 即游标稳定性。即游标稳定性。 详细说明: 当多个用户访问同一数据库时会发生的现象介绍如下: 在单用户环境中,每个事务都是顺序执行的,而不会遇到与其他事务的冲突。但是,在多用户环境下,多个事务可以(而且常常)同时执行。因此每个事务都有可能与其他正在运行的事务发生冲突。有可能与其他事务发生冲突的事务称为交错的 或并行的