concurrent-access-resolution-clause

選用 concurrent-access-resolution-clause 指定要用於 select-statement的並行存取解決方案。

Read syntax diagramSkip visual syntax diagramWAIT FOR OUTCOME

WAIT FOR OUTCOME 指定在更新或刪除處理程序中遇到資料時等待確定或回復。 不會跳過正在插入的處理程序中發現的列。 系統會忽略登錄變數 DB2_EVALUNCOMMITTED、 DB2_SKIPDELETED及 DB2_SKIPINSERTED 的設定。 當隔離層次為 CS 或 RS 時,此子句適用。 當 UR 或 RR 的隔離層次生效時,或當表格是直欄組織時,會忽略它。

此子句會導致置換下列行為及設定:
  • 任何更高層次設定,例如連結選項、CLI 設定、 JDBC 設定或鎖定修改。
Read syntax diagramSkip visual syntax diagramSKIP LOCKED DATA

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 以及更新版本中提供下列特性。
Read syntax diagramSkip visual syntax diagramNOWAITWAIT <time sec>

NOWAIT 及 WAIT 子句指定在傳回指出無法取得鎖定的錯誤之前等待鎖定的秒數。

使用 WAIT 子句時, <time sec> 是介於 -1 和 32767 之間的整數。
附註: 對於 NOWAITWAIT 0,不會等待鎖定。 如果在要求時沒有可用的鎖定,則會傳回 -911 錯誤。
當指定 WAIT 值 -1 時,會關閉鎖定逾時偵測。 在此狀況下,會等待鎖定 (如果在要求時無法使用) ,直到發生下列其中一個事件:
  • 已授與鎖定。
  • 發生死鎖。
使用 NOWAIT 及 WAIT 子句會改寫 LOCKTIMEOUT 資料庫配置變數的值,以及這個 select 陳述式的 CURRENT LOCK TIMEOUT 特別暫存器的值。 這表示新增具有等待時間值 t 的 NOWAIT/WAIT 子句,與執行具有 LOCKTIMEOUT 值或 CURRENT LOCK TIMEOUT 值 t的 SELECT 陳述式具有相同的效果。