db2隔离级别-试验(二)

2014-11-24 02:44:54 · 作者: · 浏览: 13
题。
方法:尝试在session1的两次查询之间添加符合其查询条件的记录。

STEP 0:把两个session都设置为RR隔离级别:
SET CURRENT ISOLATION TO RR

STEP 1:在session1中做查询操作,但不提交:
SELECT * FROM TA WHERE AC1 > 0 AND AC1 < 10
假定查询结果有6条记录。

STEP 2:在session2中INSERT一条记录:
INSERT INTO TA (AC1, AC2) VALUES (7, 1)

Session2被block住了……

STEP 3:在session1中做同样的查询操作:
SELECT * FROM TA WHERE AC1 > 0 AND AC1 < 10
查询结果仍为6条记录,且数据和第一次查询保持一致。

STEP 4:在session1中做commit/rollback操作

则session2立即继续执行。

结论:在“RR”隔离级别下不会产生“幻象记录”的问题。

作者“java-true”