共用方式為


ANALYZE TABLE

適用於:核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

ANALYZE TABLE 語句會收集指定 schema中特定 table 或所有 tables 的估計統計數據。 查詢優化器會使用這些統計數據來 generate 出最佳的查詢計劃。

預測性優化會自動 ANALYZE ON Unity Catalog Managed tables執行。 Databricks 建議為所有 Unity Catalog 受控 tables 啟用預測優化,以簡化數據維護並減少記憶體成本。 請參閱 為 Unity Catalog Managed tables提供的預測性優化。

重要

與的 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 ]

Parameters

  • table_name

    識別要分析的 table。 名稱不得包含 時態規格或選項規格 或路徑。 如果找不到 table,Azure Databricks 就會產生 TABLE_OR_VIEW_NOT_FOUND 錯誤。

  • PARTITION 子句

    選擇性地將命令限制為分割區子集。

    Delta Lake tables不支持這個子句。

  • DELTA

    適用於:核取記號為「是」 Databricks SQL 核取記號為「是」 Databricks Runtime 14.3 LTS 和更新版本

    重新計算儲存在 Delta 記錄中的統計數據,這些數據是為 Delta table中設定的 columns 進行統計數據收集而生成的。

    DELTA指定 關鍵詞時,不會收集查詢優化工具的一般統計數據。

    Databricks 建議在設定新的 columns 之後執行 ANALYZE TABLE table_name COMPUTE DELTA STATISTICS,以便略過資料,針對 table中所有行的 update 統計資料進行優化。 若要獲得最佳效能,請在 Delta 日誌 update 完成之後,執行 ANALYZE TABLE table_name COMPUTE STATISTICS 到 update 的查詢計劃。

  • [ NOSCAN | FOR COLUMNS col [,...] |全部 COLUMNS ]

    如果未指定分析選項,ANALYZE TABLE 會收集 table的數據列數目和位元元組大小。

    • NOSCAN

      僅收集 table位元組大小(不需要掃描整個 table )。

    • FOR COLUMNS col [, ...] |適用於所有 COLUMNS

      收集每個指定 column 的 column 統計數據,或者針對每個 column以及 table 統計數據收集資料。

      Column 統計數據與 PARTITION 子句的組合不被支援。

  • { FROM | IN } schema_name

    指定要分析之 schema 的名稱。 如果沒有 schema 名稱,ANALYZE TABLES 會收集目前用戶有權分析之目前 schema 中的所有 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;