

 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="c_best-practices-best-dist-key"></a>

當您執行查詢時，查詢最佳化工具會視需要將資料列重新配送至運算節點，以執行任何聯結與彙總。選擇資料表配送樣式的目的是，藉由在執行查詢之前，將資料配置至需要的位置，以降低重新配送步驟所帶來的影響。

**注意**  
當您使用自動資料表最佳化時，您不需要選擇資料表的分佈樣式。如需詳細資訊，請參閱[自動資料表最佳化](t_Creating_tables.md)。

部分最佳做法建議如下：

1. 將事實資料表與一維度資料表配送至它們的共通欄位。

   您的事實資料表只能有一個分佈索引鍵。聯結其他索引鍵的任何資料表都不會與事實資料表共置。依據其聯結的頻率與聯結資料列的大小，選擇一個維度進行共置。將維度資料表的主索引鍵與事實資料表的對應外部索引鍵指定為 DISTKEY。

1. 依據篩選過的資料集大小，選擇最大的維度。

   只有用於聯結的資料列必須配送，因此應考量篩選之後的資料集大小，而非資料表的大小。

1. 在經過篩選的結果集中選擇高基數的欄位。

   例如，如果您將銷售資料表配送至日期欄位，您可能會獲得相當平均的資料配送，除非大部分的銷售是季節性的。但是，如果您通常使用限制範圍的述詞來篩選以縮小日期期間，則大多數篩選過的資料列會發生在一組有限的分割上，而且查詢工作負載會發生偏斜。

1. 變更一些維度資料表以使用 ALL 分佈。

   如果維度資料表無法與事實資料表或其他重要的聯結資料表共置，您可以藉由將整個資料表發佈至所有節點，以大幅提升查詢效能。使用 ALL 分佈會增加儲存空間要求，並增加載入時間與維護操作，因此在選擇 ALL 分佈之前，您應權衡所有因素。

若要讓 Amazon Redshift 選擇適當的分佈樣式，請指定分佈樣式的 `AUTO`。

如需選擇分佈樣式的相關資訊，請參閱 [分配資料以實現查詢最佳化](t_Distributing_data.md)。