スキップしてコンテンツを表示

Amazon Redshift のテーブルにおいて、バキュームソートのメリットが 0 であるにもかかわらず、未ソート率が高い原因を教えてください。

所要時間1分
0

Amazon Redshift のテーブルにおいて、未ソート率は高いものの、vacuum_sort_benefit の値は 0 になっています。

簡単な説明

Amazon Redshift は SVV_TABLE_INFO の未ソート列を計算し、ソートキーの順序と一致しないテーブルデータの割合を示します。未ソート率が高い場合は、VACUUM ソート操作を行うと、クエリのパフォーマンスが向上する可能性があります。

vacuum_sort_benefit の値から、ソート操作によってパフォーマンスが向上するかどうかを判断できます。値が 0 の場合は、ソートではクエリが最適化されないため、Amazon Redshift は VACUUM 操作の利点を得られません。

未ソート率が高いものの、vacuum_sort_benefit 値が 0 になる状況は、次の要因で発生する場合があります。

  • Amazon Redshift は、最近のクエリプランに基づいて、ソートによるメリットは最小限であると判断した場合。クエリはテーブルのごく一部にのみアクセスする場合。あるいは、テーブルにアクセスするクエリはごくわずかである場合。
  • そのクエリでは、ソートキー列によるフィルターや順序付けは行わない場合。テーブルがソートされずに表示されるものの、ソートの利点は最小限である場合。
  • テーブルではクエリが実行されていないため、Amazon Redshift はソート順序を最適化する必要がない場合。

詳細については、「テーブルのバキューム処理」を参照してください。

解決策

ソートによってパフォーマンスが向上するかどうかを判断するには、vacuum_sort_benefit 値および未ソート値の両方を確認してください。

**vacuum_sort_benefit ** の値が 0 で、未ソート値が大きい場合は、データをソートしても、クエリパターンにはメリットがありません。vacuum_sort_benefit メトリクスは、ワークロードパターンに基づいてソートを行った場合の、潜在的なクエリパフォーマンスの向上を計算します。

次のクエリを実行して値を取得します。

SELECT "schema", "table", sortkey1, sortkey_num, unsorted, vacuum_sort_benefit
 FROM SVV_TABLE_INFO
WHERE "table" = 'table_name';

注: **table_name ** を実際のテーブル名に置き換えてください。

ソートキーが頻繁にクエリされるフィルター列に合ったものであることを確認してください。ソートキーがクエリパターンに関連していない場合、未ソート率が高くてもパフォーマンスに大きな影響はありません。

ソートによってパフォーマンスが向上すると判断した場合は、次の VACUUM sort コマンドを実行し、手動でテーブルにバキューム処理を行ってください。

VACUUM SORT ONLY table_name;

注: **table_name ** を実際のテーブル名に置き換えてください。

関連情報

テーブルの自動ソート

AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ