

 Amazon Redshift 將不再支援從修補程式 198 開始建立新的 Python UDFs。現有 Python UDF 將繼續正常運作至 2026 年 6 月 30 日。如需詳細資訊，請參閱[部落格文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 短期查詢加速
<a name="wlm-short-query-acceleration"></a>

短期查詢加速 (SQA) 可排定讓短期執行的查詢優先於長期執行的查詢。SQA 會在專用空間中執行短期查詢，所以 SQA 查詢不會被迫在佇列中排在長期查詢後面等待。SQA 只優先處理短期執行且位於使用者定義佇列中的查詢。SQA 可讓短期執行的查詢更快開始執行，使用者會更快看到結果。

如果啟用 SQA，您可以減少短期查詢執行專用的工作負載管理 (WLM) 佇列。此外，長期執行的查詢不需要與短期查詢爭奪佇列中的槽，因此，您可以將 WLM 佇列設定為使用較少的查詢槽。使用較低的並行性時，就大部分工作負載而言，查詢傳輸量會增加，且整體系統效能會改善。

 [CREATE TABLE AS](r_CREATE_TABLE_AS.md) (CTAS) 陳述式和唯讀查詢 (例如 [SELECT](r_SELECT_synopsis.md) 陳述式) 符合 SQA 的資格。

Amazon Redshift 採用機器學習演算法來分析每一個合格查詢，並預測查詢的執行時間。根據預設，WLM 會根據叢集工作負載的分析結果，動態指派 SQA 最長執行時間的值。或者，您可以指定固定值 1–20 秒。如果查詢的預測執行時間小於定義或動態指派的 SQA 最大執行期，而且查詢正在 WLM 佇列中等候，則 SQA 會將查詢與 WLM 佇列區隔，並排定其優先執行順序。如果查詢執行的時間比 SQA 最長執行時間還久，WLM 會根據 [WLM 佇列指派規則](cm-c-wlm-queue-assignment-rules.md)，將查詢移至第一個相符的 WLM 佇列。隨著 SQA 從查詢模式中學習一段時間，預測會越準確。

根據預設，SQA 在預設參數群組中會啟用，且適用於所有新的參數群組。若要在 Amazon Redshift 主控台停用 SQA，請編輯參數群組的 WLM 組態，並取消選取**啟用短期查詢加速**。在最佳作法上，建議使用的 WLM 查詢槽計數為 15 或更少，以維持最佳的整體系統效能。如需修改 WLM 組態的資訊，請參閱《Amazon Redshift 管理指南》**中的[設定工作負載管理](https://docs.aws.amazon.com/redshift/latest/mgmt/workload-mgmt-config.html)。

## 短期查詢最長執行時間
<a name="wlm-sqa-max-run-time"></a>

啟用 SQA 時，根據預設，WLM 會將短期查詢的最長執行時間設為動態。建議維持 SQA 最長執行時間的動態設定。您可以指定固定值 1–20 秒以覆寫預設設定。

在某些情況下，您可能考慮針對 SQA 最長執行時間值使用不同的值，以改善系統效能。在此情況下，請分析工作負載，以找出大部分短期執行查詢的最長執行時間。下列查詢傳回第 70 個百分位數附近之查詢的最長執行時間。

```
select least(greatest(percentile_cont(0.7) 
within group (order by total_exec_time / 1000000) + 2, 2), 20) 
from stl_wlm_query 
where userid >= 100
and final_state = 'Completed';
```

決定適合工作負載的最長執行時間值之後，就不需要變更，除非工作負載大幅改變。

## 監控 SQA
<a name="wlm-monitoring-sqa"></a>

若要檢查是否已啟用 SQA，請執行下列查詢。如果查詢傳回一列，表示 SQA 已啟用。

```
select * from stv_wlm_service_class_config 
where service_class = 14;
```

下列查詢顯示通過每個查詢佇列 (服務類別) 的查詢數。也顯示平均執行時間、第 90 個百分位數的查詢數和等待時間，以及平均等待時間。SQA 查詢使用服務類別 14。

```
select final_state, service_class, count(*), avg(total_exec_time), 
percentile_cont(0.9) within group (order by total_queue_time), avg(total_queue_time) 
from stl_wlm_query where userid >= 100 group by 1,2 order by 2,1;
```

若要找出哪些查詢由 SQA 挑出且成功完成，請執行下列查詢。

```
select a.queue_start_time, a.total_exec_time, label, trim(querytxt) 
from stl_wlm_query a, stl_query b 
where a.query = b.query and a.service_class = 14 and a.final_state = 'Completed' 
order by b.query desc limit 5;
```

若要找出由 SQA 挑出但逾時的查詢，請執行下列查詢。

```
select a.queue_start_time, a.total_exec_time, label, trim(querytxt) 
from stl_wlm_query a, stl_query b 
where a.query = b.query and a.service_class = 14 and a.final_state = 'Evicted' 
order by b.query desc limit 5;
```

如需移出查詢的相關資訊，以及可對查詢執行之更普遍的規則式動作的詳細資訊，請參閱 [WLM 查詢監控規則](cm-c-wlm-query-monitoring-rules.md)。