本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
WLM查詢佇列跳轉
由於WLM逾時或查詢監視規則 (QMR) 躍點動作,可能會跳躍查詢。您只能在手動WLM設定中進行躍點查詢。
跳躍查詢時,會WLM嘗試根據佇列指派規則將查詢路由至下一個相符WLM佇列。如果查詢不符合其他任何佇列定義,則會取消此查詢。不會指派給預設佇列。
WLM逾時動作
下表摘要列出具有WLM逾時之不同類型查詢的行為。
查詢類型 | 動作 |
---|---|
INSERT、UPDATE、和 DELETE | 取消 |
使用者定義函數 (UDFs) | 取消 |
UNLOAD | 取消 |
COPY | 繼續執行 |
維護操作 | 繼續執行 |
處於 returning 狀態的唯讀查詢 |
繼續執行 |
處於 running 狀態的唯讀查詢 |
重新指派或重新啟動 |
CREATETABLE如(CTAS),SELECTINTO | 重新指派或重新啟動 |
WLM超時佇列跳轉
WLM在逾時時跳躍下列類型的查詢:
-
處於狀態的唯讀查詢,例如SELECT陳WLM述式
running
。若要尋找查詢的WLM狀態,請檢視系STV_WLM_QUERY_STATE統資料表上的STATE欄。 -
CREATETABLEAS (CTAS) 陳述式。WLM佇列跳轉支援使用者定義和系統產生CTAS的陳述式。
-
SELECTINTO陳述。
不受WLM逾時限制的查詢會繼續在原始佇列中執行,直到完成為止。下列類型的查詢不受WLM逾時限制:
-
COPY陳述
-
維護操作,例如ANALYZE和 VACUUM
-
已達到狀態的唯讀查詢,例如SELECT陳WLM述式
returning
。若要尋找查詢的WLM狀態,請檢視系STV_WLM_QUERY_STATE統資料表上的STATE欄。
在逾時時間內不符合跳躍資格的查詢會在WLM逾時時予以取消。以下類型的查詢不符合WLM逾時跳轉的資格:
-
INSERTUPDATE、和DELETE陳述式
-
UNLOAD陳述
-
使用者定義函數 (UDFs)
WLM超時重新分配和重新啟動查詢
當查詢跳轉且找不到相符的佇列時,就會取消此查詢。
跳躍查詢並找到相符佇列時,會WLM嘗試將查詢重新指派給新佇列。如果無法重新指派查詢,則會在新佇列中重新啟動此查詢,如下所述。
只有在下列所有條件成立時,才會重新指派查詢:
-
找到相符的查詢。
-
新佇列有足夠可用的槽可執行查詢。如果 wlm_query_slot_count 參數設定的值大於 1,查詢可能需要多個槽。
-
新佇列可用的記憶體至少與查詢目前使用的記憶體一樣多。
如果重新指派查詢,此查詢會在新佇列中繼續執行。中間結果會保留下來,因此對於總執行時間影響極小。
如果無法重新指派查詢,則會取消查詢,並於新佇列中重新啟動查詢。將會刪除中間結果。查詢會在佇列中等待,然後在有足夠的槽可用時開始執行。
QMR躍點動作
下表摘要列出具有QMR躍點動作之不同類型查詢的行為。
查詢類型 | 動作 |
---|---|
COPY | 繼續執行 |
維護操作 | 繼續執行 |
使用者定義函數 (UDFs) | 繼續執行 |
UNLOAD | 重新指派或繼續執行 |
INSERT、UPDATE、和 DELETE | 重新指派或繼續執行 |
處於 returning 狀態的唯讀查詢 |
重新指派或繼續執行 |
處於 running 狀態的唯讀查詢 |
重新指派或重新啟動 |
CREATETABLE如(CTAS),SELECTINTO | 重新指派或重新啟動 |
若要瞭解跳過QMR的查詢是否已重新指派、重新啟動或取消,請查詢STL_WLM_RULE_ACTION系統記錄資料表。
QMR躍點動作重新指派並重新啟動查詢
當查詢跳轉且找不到相符的佇列時,就會取消此查詢。
跳躍查詢並找到相符佇列時,會WLM嘗試將查詢重新指派給新佇列。如果無法重新指派查詢,此查詢會在新佇列中重新啟動,或在原始佇列中繼續執行,如下所述。
只有在下列所有條件成立時,才會重新指派查詢:
-
找到相符的查詢。
-
新佇列有足夠可用的槽可執行查詢。如果 wlm_query_slot_count 參數設定的值大於 1,查詢可能需要多個槽。
-
新佇列可用的記憶體至少與查詢目前使用的記憶體一樣多。
如果重新指派查詢,此查詢會在新佇列中繼續執行。中間結果會保留下來,因此對於總執行時間影響極小。
如果無法重新指派查詢,此查詢會重新啟動或在原始佇列中繼續執行。如果重新啟動查詢,則會取消查詢,並於新佇列中重新啟動查詢。將會刪除中間結果。查詢會在佇列中等待,然後在有足夠的槽可用時開始執行。