不可重复读 (NON-REPEATABLE READ) 和幻读 (PHANTOM) 如何影响 COBOL-DB2 程序的功能?

db2databasebig data analyticscobol

当 COBOL-DB2 程序多次执行相同的查询,但每次查询的结果都不同时,就会出现不可重复读的情况。这种情况通常发生在两个 COBOL-DB2 程序访问 DB2 表的同一行时。

第一个程序读取该行,然后第二个程序读取同一行,更新并提交更改。第一个程序再次读取同一行,但现在数据与之前获取的数据不匹配。

当查询多次执行时,查询结果中的行数不一致时,就会出现幻读情况。

例如,如果程序 A 使用某些 WHERE 条件执行查询,并在结果中获得 3 行。现在,程序 B 在同一个表中插入了一行新行,该行符合程序 A 使用的查询谓词。

最后,程序 A 执行相同的查询,结果共计 4 行。额外的 1 行称为幻像行。


相关文章