次の方法で共有


ANALYZE TABLE

適用対象: 「はい」のチェック マーク Databricks SQL Databricks Runtime

ANALYZE TABLE ステートメントは、特定のテーブルについての、または指定されたスキーマ内のすべてのテーブルについての推定統計値を収集します。 これらの統計は、最適なクエリ プランを生成するためにクエリ オプティマイザーによって使用されます。

予測最適化は、ON Unity カタログのマネージド テーブル ANALYZE 自動的に実行されます。 Databricks では、データのメンテナンスを簡素化し、ストレージ コストを削減するために、すべての Unity Catalog マネージド テーブルに対して予測最適化を有効にすることをお勧めします。 「Unity Catalog 管理テーブルの予測最適化」を参照してください。

重要

ANALYZEを使用した予測最適化はパブリック プレビュー段階です。 これには、書き込み中のインテリジェントな統計収集が含まれます。 このフォーム 使用して パブリック プレビューにサインアップします。

構文

ANALYZE TABLE table_name [ PARTITION clause ]
    COMPUTE [ DELTA ] STATISTICS [ NOSCAN | FOR COLUMNS col1 [, ...] | FOR ALL COLUMNS ]

ANALYZE TABLES [ { FROM | IN } schema_name ] COMPUTE STATISTICS [ NOSCAN ]

パラメーター

  • table_name

    分析するテーブルを識別します。 名前には、 の指定またはオプションの指定 またはパスを含めてはなりません。 テーブルが見つからない場合、Azure Databricks で TABLE_OR_VIEW_NOT_FOUND エラーが発生します。

  • PARTITION 句

    必要に応じて、コマンドをパーティションのサブセットに制限します。

    この句は、Delta Lake のテーブルではサポートされません。

  • DELTA

    適用対象: check marked yes Databricks SQL Databricks Runtime 14.3 LTS 以降

    Delta テーブルの統計情報の収集用に構成された列の Delta ログに保存された統計情報を再計算します。

    DELTA キーワードが指定されると、クエリ オプティマイザーの通常の統計情報は収集されません。

    Databricks では、テーブル内のすべての行の統計情報を更新するために、データのスキップ用の新しい列を設定した後に ANALYZE TABLE table_name COMPUTE DELTA STATISTICS を実行することをお勧めしています。 パフォーマンスを最適化するには、Delta ログの更新完了後にクエリ プランを更新するように ANALYZE TABLE table_name COMPUTE STATISTICS を実行してください。

  • [ NOSCAN | FOR COLUMNS col [, …] | FOR ALL COLUMNS ]

    分析オプションが指定されていない場合、ANALYZE TABLE はテーブルの行数とサイズをバイト単位で収集します。

    • NOSCAN

      テーブルのサイズのみをバイト単位で収集します (テーブル全体をスキャンする必要はありません)。

    • FOR COLUMNS col [, …] | FOR ALL COLUMNS

      指定した各列の列統計を収集するか、すべての列に対して列統計とテーブル統計を収集します。

      列の統計は、PARTITION 句との組み合わせではサポートされていません。

  • { FROM | IN } schema_name

    分析するスキーマの名前を指定します。 スキーマ名を指定しない場合、現在のユーザーが分析する権限を持っている現在のスキーマ内にあるすべてのテーブルが、ANALYZE TABLES によって収集されます。

> CREATE TABLE students (name STRING, student_id INT) PARTITIONED BY (student_id);
> INSERT INTO students PARTITION (student_id = 111111) VALUES ('Mark');
> INSERT INTO students PARTITION (student_id = 222222) VALUES ('John');

> ANALYZE TABLE students COMPUTE STATISTICS NOSCAN;

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics            864 bytes
                  ...                  ...     ...

> ANALYZE TABLE students COMPUTE STATISTICS;

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics    864 bytes, 2 rows
                  ...                  ...     ...

-- Note: ANALYZE TABLE .. PARTITION is not supported for Delta tables.
> ANALYZE TABLE students PARTITION (student_id = 111111) COMPUTE STATISTICS;

> DESC EXTENDED students PARTITION (student_id = 111111);
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
 Partition Statistics    432 bytes, 1 rows
                  ...                  ...     ...
         OutputFormat org.apache.hadoop...

> ANALYZE TABLE students COMPUTE STATISTICS FOR COLUMNS name;

> DESC EXTENDED students name;
      info_name info_value
 -------------- ----------
       col_name       name
      data_type     string
        comment       NULL
            min       NULL
            max       NULL
      num_nulls          0
 distinct_count          2
    avg_col_len          4
    max_col_len          4
      histogram       NULL

> ANALYZE TABLES IN school_schema COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED teachers;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           teacher_id                  int    null
                  ...                  ...     ...
           Statistics           1382 bytes
                  ...                  ...     ...

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics            864 bytes
                  ...                  ...     ...

> ANALYZE TABLES COMPUTE STATISTICS;
> DESC EXTENDED teachers;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           teacher_id                  int    null
                  ...                  ...     ...
           Statistics   1382 bytes, 2 rows
                  ...                  ...     ...

> DESC EXTENDED students;
             col_name            data_type comment
 -------------------- -------------------- -------
                 name               string    null
           student_id                  int    null
                  ...                  ...     ...
           Statistics    864 bytes, 2 rows
                  ...                  ...     ...

> ANALYZE TABLE some_delta_table COMPUTE DELTA STATISTICS;