Uncommitted Read (UR) 允許讀取其他交易**未提交**的變更(髒讀),且**不鎖定讀取的行**(除非其他交易嘗試 DROP/ALTER 表)。是併發度最高、一致性最低的隔離級別。
| 游標類型 | UR 行為 |
|---|---|
| 唯讀游標 | 可讀取大多數未提交變更;但正被建立/刪除的表、視圖、索引不可用 |
| 可更新游標 | **自動升級為 CS (Cursor Stability)** 行為 |
預編譯/綁定預設 BLOCKING=UNAMBIG,將模糊游標視為可更新 → 升級為 CS。若需保持 UR 行為,兩種方式:
FOR READ ONLY 子句,明確標記唯讀BLOCKING ALL + STATICREADONLY YES,強制將所有模糊游標視為唯讀嚴禁用於: 金融帳務、庫存扣減、任何需資料正確性的寫入業務。UR 僅適合「寧可看錯、不可鎖死」的唯讀分析場景。
UR 以犧牲所有 ACID 中的 Isolation 換取極致併發。善用 FOR READ ONLY 與綁定選項控制游標行為,避免意外升級為 CS 導致鎖爭用。讓 UR 留在它該在的地方:唯讀、可容忍髒讀、高併發報表查詢。