メインコンテンツまでスキップ

分析する

説明

このステートメントは列統計の収集に使用されます。列の統計は、テーブル(特定の列を指定可能)またはデータベース全体に対して収集できます。

構文

ANALYZE {TABLE <table_name> [ (<column_name> [, ...]) ] | DATABASE <database_name>}
[ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} <sample_rate> ] ];

必須パラメータ

1. <table_name>

指定するターゲットテーブル。このパラメータと<database_name>パラメータは、どちらか一方のみを指定する必要があります。

2. <database_name>

指定するターゲットデータベース。このパラメータと<table_name>パラメータは、どちらか一方のみを指定する必要があります。

オプションパラメータ

1. <column_name>

指定するターゲットカラム。table_nameに存在するカラムである必要があります。カンマで区切って複数のカラム名を指定できます。

2. WITH SYNC

統計情報を同期的に収集します。収集後に結果を返します。指定されない場合は、非同期で実行されます。

3. WITH SAMPLE {PERCENT | ROWS} <sample_rate>

収集にサンプリング方法を使用することを指定します。指定されない場合は、デフォルトで完全収集が行われます。<sample_rate>はサンプリングパラメータです。PERCENTサンプリングを使用する場合は、サンプリング割合を指定します。ROWSサンプリングを使用する場合は、サンプリングする行数を指定します。

戻り値

ColumnNote
Job_Id一意のJob Id
Catalog_NameCatalog名
DB_Nameデータベース名
Columnsカラム名リスト

アクセス制御要件

このSQLを実行するユーザーは、少なくとも以下の権限を持つ必要があります:

PrivilegeObjectNotes
SELECT_PRIVTableANALYZEを実行する際は、クエリ対象テーブルのSELECT_PRIV権限が必要です。

  1. テーブルlineitemの10%をサンプリングして統計情報を収集する。
ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10;
  1. table lineitemから100,000行をサンプリングして統計を収集します。
ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000;