

 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="t_Sorting_data"></a>

**注意**  
建議您使用 `SORTKEY AUTO` 建立資料表。如果您這麼做，Amazon Redshift 會使用自動資料表最佳化來選擇排序索引鍵。如需詳細資訊，請參閱[自動資料表最佳化](t_Creating_tables.md)。本節的其餘部分會提供有關排序順序的詳細資訊。

或者，建立資料表時，您可以定義一或多個資料欄做為*排序索引鍵*。當資料最初載入至空的資料表時，資料列會依排序儲存在磁碟上。排序索引鍵資料欄的相關資訊會傳遞至查詢規劃器，而且規劃器會使用此資訊，來建構利用資料排序方式的計劃。如需詳細資訊，請參閱[CREATE TABLE](r_CREATE_TABLE_NEW.md)。如需建立排序索引鍵時最佳作法的資訊，請參閱 [選擇最佳的排序索引鍵](c_best-practices-sort-key.md)。

排序可以有效率地處理限制範圍的述詞。Amazon Redshift 將單欄式資料儲存在 1 MB 磁碟區塊中。每個區塊的 min 和 max 值都會儲存為中繼資料的一部分。如果查詢使用範圍受限的述詞，則查詢處理器可以使用 min 和 max 值，在資料表掃描期間快速地略過大量區塊。例如，假設資料表儲存了依日期排序的五年資料，而查詢指定了一個月的日期範圍。在這種情況下，您最多可以從掃描中移除 98% 的磁碟區塊。如果未排序資料，則必須掃描更多的磁碟區塊 (可能全部)。

您可以指定複合或交錯排序索引鍵。當查詢述詞使用*字首*，即依序的排序索引鍵子集時，複合排序索引鍵更有效。交錯排序索引鍵對排序索引鍵中的每個資料欄都提供相等的權重，所以查詢述詞可以使用構成排序索引鍵之資料欄的任何子集，順序不拘。

若要了解選擇的排序索引鍵對查詢效能的影響，請使用 [EXPLAIN](r_EXPLAIN.md) 命令。如需詳細資訊，請參閱[查詢計劃和執行工作流程](c-query-planning.md)。

若要定義排序類型，請使用 INTERLEAVED 或 COMPOUND 關鍵字與 CREATE TABLE 或 CREATE TABLE AS 陳述式搭配。預設值為 COMPOUND。當您使用 INSERT、UPDATE 或 DELETE 操作定期更新資料表時，建議使用 COMPOUND。INTERLEAVED 排序索引鍵最多可以使用八個資料欄。視您的資料和叢集大小而定，VACUUM REINDEX 所需的時間會比 VACUUM FULL 大幅增加，因為它會額外進行交錯排序索引鍵分析。交錯資料表的排序和合併操作可能需要更長的時間，因為交錯排序可能需要重新排列比複合排序更多的資料列。

若要檢視資料表的排序索引鍵，請查詢 [SVV\_TABLE\_INFO](r_SVV_TABLE_INFO.md) 系統檢視。

**Topics**
+ [多維資料佈局 (預覽版)](t_Sorting_mutidimensional-sort-key.md)
+ [複合排序索引鍵](t_Sorting_data-compound.md)
+ [交錯排序索引鍵](t_Sorting_data-interleaved.md)