摘要:
2011年1月13日 重启动发生的原因:where条件读取时采用一致读和更新时采取当前读版本不一致造成Oracle在执行DML语句时,会用到两种不同的方式去读取数据块:1. 一致读:在“找到”需要修改的数据行时,会采用 consistent read2. 当前读:在“获取”数据块来实际更新数据行时,会采用 current read 如更新这个语句update test set x=1 where y=1;首先Oracle会利用一致读找到所有y=1的数据行,因此就算读取期间有别的会话修改了某一行的y值(如从y=1变为 y=2),Oracle也会利用undo数据将该行的y列恢复到读取的那个时刻的值 阅读全文