在oracle undo_retention范围内,且_undo_autotune=false的状况下,一个语句执行的时候仍然发生ora-8176,语句以下:oracle
INSERT INTO XXX SELECT * FROM XXX AS OF SCN 217843607 A WHERE NOT EXISTS ( SELECT 1 FROM XXX b WHERE A .id= b.id ) AND tenantid = '*'
经查看,A和b关联的时候走了索引路径扫描,使用了索引的撤销块,致使出现该问题。将其调整为全表扫描走哈希链接后,没有该问题了。spa
INSERT INTO XXX SELECT /*+ full(a) */ * FROM XXX AS OF SCN 217843607 A WHERE NOT EXISTS ( SELECT 1 FROM XXX b WHERE A .id= b.id ) AND tenantid = '*'
更早的时候,其实LZ特意查看过官方文档,索引块也是有对应的撤销块的。code