COBOL-DB2 程序如何受不可重复读(NON-REPEATABLE READ)和幻读(PHANTOMS)的影响?
当 COBOL-DB2 程序多次执行相同的查询时,如果每次查询结果都不同,则会出现不可重复读(NON-REPEATABLE READ)的情况。这种情况通常发生在两个 COBOL-DB2 程序访问 DB2 表的同一行时。
第一个程序读取该行,然后第二个程序读取同一行,更新它并提交更改。第一个程序再次读取同一行,但现在数据与之前的获取不匹配。
当查询结果中的行数在多次执行查询时不匹配时,就会出现幻读(PHANTOM)情况。
例如,如果程序 A 使用某些 WHERE 条件执行查询,并在结果中获得 3 行。现在,程序 B 在同一表中插入一行新数据,并且新行属于程序 A 使用的查询谓词。
最后,程序 A 执行相同的查询,并在结果中获得总共 4 行。这多出来的 1 行被称为幻读。
广告