メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

ANALYZE

クエリプランナーで使用するテーブル統計を更新します。

構文

Copy
ANALYZE [ VERBOSE ] [ [ table_name ] [ ( column_name [, ...] ) ] ]

Parameters

VERBOSE

ANALYZE 操作に関する進捗情報メッセージを返します。このオプションは、テーブルを指定しないときに役立ちます。

table_name

一時テーブルを含む、特定のテーブルを分析できます。テーブルをそのスキーマ名で修飾することができます。また、table_name を指定して単一のテーブルを分析することもできます。1 つの ANALYZE table_name ステートメントで複数の table_name を指定することはできません。table_name を指定しなかった場合、システムカタログ内の永続的テーブルを含め、現在接続されているデータベースのテーブルがすべて分析されます。 Amazon Redshift は、最後の ANALYZE 以降に変更された行の割合が分析のしきい値よりも低い場合、テーブルの分析をスキップします。詳細については、「分析のしきい値」を参照してください。

Amazon Redshift のシステムテーブル (STL テーブルと STV テーブル) を分析する必要はありません。

column_name

table_name を指定する場合、テーブルの 1 つ以上の列を指定することもできます (括弧内に列をカンマ区切りリストとして指定します)。

使用に関する注意事項

Amazon Redshift では、以下のコマンドを使用して作成したテーブルで自動的に ANALYZE を実行します。

  • CREATE TABLE AS

  • CREATE TEMP TABLE AS

  • SELECT INTO

最初に作成したとき、これらのテーブルに ANALYZE コマンドを実行する必要はありません。変更する場合は、他のテーブルと同じように分析する必要があります。

分析のしきい値

処理時間を減らし、全体的なシステムパフォーマンスを向上させるため、最後の ANALYZE コマンドの実行以降に変更された行の割合が、analyze_threshold_percent パラメータで指定された分析のしきい値よりも低い場合、Amazon Redshift はテーブルの分析をスキップします。デフォルトでは、analyze_threshold_percent は 10 です。現在のセッションの analyze_threshold_percent を変更するには、SET コマンドを実行します。次の例では、analyze_threshold_percent を 20 パーセントに変更します。

Copy
set analyze_threshold_percent to 20;

数行のみを変更した場合にテーブルを分析するには、analyze_threshold_percent に任意の小さい数字を設定します。たとえば、analyze_threshold_percent を 0.01 に設定すると、少なくとも 10,000 行が変更された場合は 100,000,000 行のテーブルをスキップしません。

Copy
set analyze_threshold_percent to 0.01;

ANALYZE でテーブルがスキップされるのは、分析のしきい値を満たしていないためです。Amazon Redshift は次のメッセージを返します。

Copy
ANALYZE SKIP

行が変更されていない場合でもすべてのテーブルを分析するには、analyze_threshold_percent を 0 に設定します。

ANALYZE オペレーションの結果を表示するには、STL_ANALYZE システムテーブルに対してクエリを実行します。

テーブル分析の詳細については、「テーブルを分析する」を参照してください。

TICKIT データベースのすべてのテーブルを分析し、進捗情報を返します。

Copy
analyze verbose;

LISTING テーブルのみを分析します。

Copy
analyze listing;

VENUE テーブルの VENUEID 列と VENUENAME 列を分析します。

Copy
analyze venue(venueid, venuename);