使用自動資料表最佳化 - Amazon Redshift

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

使用自動資料表最佳化

自動資料表最佳化是一項自我調整功能,可透過套用排序和分佈索引鍵來自動最佳化資料表的設計,而無須管理員介入。透過使用自動化來調整資料表的設計,您可以快速開始並獲得最快的效能,而無需花費時間來手動調整和實作資料表最佳化。

自動資料表最佳化會持續觀察查詢與資料表的互動方式。其使用進階人工智慧方法來選擇排序和分佈索引鍵,以最佳化叢集工作負載的效能。如果 Amazon Redshift 判定套用索引鍵可改善叢集效能,則資料表會在叢集建立後的數小時內自動進行修改,而且會盡可能降低對查詢造成的影響。

為了充分利用此自動化功能,Amazon Redshift 管理員會建立新資料表,或修改現有資料表以使其能夠使用自動最佳化。分佈樣式或排序索引鍵為 AUTO 的現有資料表已啟用自動化功能。當您對這些資料表執行查詢時,Amazon Redshift 會判斷排序索引鍵或分佈索引鍵是否能改善效能。如果是的話,Amazon Redshift 就會自動修改資料表,而不需要管理員介入。如果執行最低限度的查詢數目,則會在啟動叢集後的數小時內套用最佳化。

如果 Amazon Redshift 判斷分佈索引鍵可改善查詢的效能,則分佈樣式為 AUTO 的資料表可以將其分佈樣式變更為 KEY

啟用自動資料表最佳化

根據預設,未明確定義排序索引鍵或分佈索引鍵而建立的資料表會設定為 AUTO。在建立資料表時,您也可以手動明確設定排序或分佈索引鍵。如果您設定排序或分佈索引鍵,則資料表不會自動受到管理。

若要對現有資料表啟用自動最佳化,請使用 ALTER 陳述式選項將資料表變更為 AUTO。您可以選擇為排序索引鍵定義自動化,但不能定義分佈索引鍵的自動化 (反之亦然)。如果您執行 ALTER 陳述式,將資料表轉換為自動化資料表,則會保留現有的排序索引鍵和分佈樣式。

ALTER TABLE table_name ALTER SORTKEY AUTO;
ALTER TABLE table_name ALTER DISTSTYLE AUTO;

如需詳細資訊,請參閱 ALTER TABLE

一開始,資料表沒有分佈索引鍵或排序索引鍵。分佈樣式會設定為 EVENALL,取決於資料表大小。隨著資料表的大小不斷增加,Amazon Redshift 會套用最佳分佈索引鍵和排序索引鍵。最佳化會在執行最少查詢數目後的小時內套用。在決定排序索引鍵最佳化時,Amazon Redshift 會嘗試最佳化資料表掃描期間從磁碟讀取的資料區塊。在決定分佈樣式最佳化時,Amazon Redshift 會嘗試最佳化叢集節點之間傳輸的位元組數。

從資料表中移除自動資料表最佳化

您可以從自動最佳化中移除資料表。從自動化中移除資料表需要選取排序索引鍵或分佈樣式。若要變更分佈樣式,請指定特定的分佈樣式。

ALTER TABLE table_name ALTER DISTSTYLE EVEN;
ALTER TABLE table_name ALTER DISTSTYLE ALL;
ALTER TABLE table_name ALTER DISTSTYLE KEY DISTKEY c1;

若要變更排序索引鍵,您可以定義排序索引鍵或選擇「無」。

ALTER TABLE table_name ALTER SORTKEY(c1, c2);
ALTER TABLE table_name ALTER SORTKEY NONE;

監控自動資料表最佳化的動作

系統檢視 SVV_ALTER_TABLE_RECOMMENDATIONS 會記錄資料表目前的 Amazon Redshift Advisor 建議。此檢視會顯示所有資料表的建議,包括已針對或未針對自動最佳化定義的資料表。

若要檢視資料表是否已定義為自動最佳化,請查詢系統檢視 SVV_TABLE_INFO。項目只會針對目前工作階段資料庫中可見的資料表而顯示。建議會在叢集建立後的幾小時內開始插入檢視 (每天兩次)。建議可用之後,就會在一小時內開始執行。在套用建議之後 (無論是由 Amazon Redshift 或您執行),該建議將不再出現在檢視中。

系統檢視 SVL_AUTO_WORKER_ACTION 會顯示 Amazon Redshift 採取的所有動作的稽核日誌,以及資料表的先前狀態。

系統檢視 SVV_TABLE_INFO 會列出系統中的所有資料表,以及用來指出資料表的排序索引鍵和分佈樣式是否設定為 AUTO 的資料欄。

如需這些系統檢視的相關資訊,請參閱 系統監控 (僅限已佈建)