此階段 **未持久化**,僅在內存完成。若實例崩潰,PMON 回滾未提交事務,Redo/Undo 保證可恢復。
DELETE:
User Process → Buffer Cache (Dirty Block) → Redo Log Buffer → Undo Segment (Before Image)
↓
COMMIT:
Generate SCN → Undo Header (Commit Flag) → LGWR → Online Redo Log (Disk) [持久化點]
↓
Fast Commit: Block Header (ITL) <- SCN (if block in cache)
Delayed Cleanout: Next Visitor -> Undo Header -> Block Header (ITL) <- SCN
| 現象 | 根因 | 優化/排查 |
|---|---|---|
| 大量 DELETE 後查詢慢 | HWM 未降、全表掃描讀空塊 | `SHRINK SPACE` / `MOVE` / 重建表 |
| COMMIT 耗時長 | LGWR 寫盤慢 / Redo Log 切換頻繁 / 存儲延遲 | 優化 Redo Log 多路徑/SSD、調大 `LOG_BUFFER`、檢查存儲 IOPS |
| 延遲塊清理導致查詢抖動 | 大批次提交後首次訪問觸發清理 | 批次提交後主動 `SELECT ... FROM table WHERE ROWID IN (SELECT ROWID FROM ...)` 預熱清理 |
| Undo 表空間爆滿 | 長事務/大量 DELETE 未提交 | 分批提交、縮短事務、調大 Undo 表空間/RETENTION |
DELETE+COMMIT 是 **「內存標記 → Redo 持久化 → SCN 全局有序 → 快速/延遲清理」** 的精密協作。理解 **LGWR 刷盤是提交的唯一持久化點**、**SCN 是一致性與恢復的時鍾**、**快速提交避免寫盤延遲**、**延遲清理分攤開銷**,能指導 DBA 從存儲、參數、應用模式三個維度系統性優化寫入效能。