concurrent-access-resolution-clause
選用 concurrent-access-resolution-clause 指定要用於 select-statement的並行存取解決方案。
WAIT FOR OUTCOME 指定在更新或刪除處理程序中遇到資料時等待確定或回復。 不會跳過正在插入的處理程序中發現的列。 系統會忽略登錄變數 DB2_EVALUNCOMMITTED、 DB2_SKIPDELETED及 DB2_SKIPINSERTED 的設定。 當隔離層次為 CS 或 RS 時,此子句適用。 當 UR 或 RR 的隔離層次生效時,或當表格是直欄組織時,會忽略它。
此子句會導致置換下列行為及設定:
- 任何更高層次設定,例如連結選項、CLI 設定、 JDBC 設定或鎖定修改。
SKIP LOCKED DATA 子句指定當其他交易在列上保留會封鎖陳述式進度的不相容鎖定時,跳過列。 這些列可以屬於任何在陳述式中定址的已存取表格,包括在子查詢中存取的表格。 當隔離層次為 CS 或 RS 時,此子句適用; 當 UR 或 RR 的隔離層次生效時,會忽略此子句。 它適用於列及區塊層次鎖定。
此子句會導致置換下列行為及設定:
- 任何更高層次的設定 (例如連結選項、CLI 設定、 JDBC 設定或鎖定修改) 仍然適用,但已修改的行為是,如果提出鎖定要求且發生衝突,則會跳過對應的列。 在陳述式上指定的 SKIP LOCKED DATA 會置換更高層次的 WAIT FOR OUTCOME 設定。
如果在 WITH RR 或 WITH UR 時指定,則會忽略 SKIP LOCKED DATA。 陳述式的預設隔離層次取決於與陳述式連結的套件或計劃的隔離,以及結果表格是否為唯讀。 如果陳述式的預設隔離層次是「可重複讀取」或「未確定的讀取」,則會忽略 SKIP LOCKED DATA。
SKIP LOCKED DATA 子句嚴格以 SQL 為基礎。 此外,無法針對下列項目指定它:
- 已定位更新及刪除
- 次查詢
- 更新/刪除直欄組織表格上的陳述式
- PREPARE 指令
- BIND 指令
注意: Db2 11.5.6 以及更新版本中提供下列特性。
NOWAIT 及 WAIT 子句指定在傳回指出無法取得鎖定的錯誤之前等待鎖定的秒數。
使用 WAIT 子句時,
<time sec> 是介於 -1 和 32767 之間的整數。附註: 對於
當指定 WAIT 值 NOWAIT 和 WAIT 0,不會等待鎖定。 如果在要求時沒有可用的鎖定,則會傳回 -911 錯誤。-1 時,會關閉鎖定逾時偵測。 在此狀況下,會等待鎖定 (如果在要求時無法使用) ,直到發生下列其中一個事件:- 已授與鎖定。
- 發生死鎖。
