在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