交易始於首個可執行 SQL 語句(DML/DDL,含查詢產生 Instance Call 的語句)。
SAVEPOINT 的 ROLLBACK。CREATE/DROP/RENAME/ALTER)→ 隱含提交當前交易,DDL 自成新交易並提交。💡 建議:應用程式退出時顯式 COMMIT/ROLLBACK,避免隱含行為造成困擾。
提交前 Oracle 執行三項動作:
⚠️ 關鍵點:已提交資料不一定立即落盤,Oracle 選擇最佳時機由 DBWn 寫入,提交前/後皆可能發生寫入。
使用 Undo Tablespace 存舊值,Redo Log 記錄操作歷程。
SAVEPOINT 部分回滾。Oracle 採多版本一致性讀取(MVCC):查詢看到提交前的舊版本,不阻塞寫入;寫入不阻塞讀取。