ANALYZE TABLE

Samlar in statistik om tabellen som ska användas av fråge optimeringen för att hitta en bättre körnings plan för frågor.

Syntax

ANALYZE TABLE table_identifier [ partition_spec ]
    COMPUTE STATISTICS [ NOSCAN | FOR COLUMNS col [ , ... ] | FOR ALL COLUMNS ]

Parametrar

  • table_identifier

    • [database_name.] table_name: Ett tabell namn, eventuellt kvalificerat med ett databas namn.
    • delta.`<path-to-table>`: Platsen för en befintlig delta tabell.
  • partition_spec

    En valfri parameter som anger en kommaavgränsad lista med nyckel/värde-par för partitioner. När det anges returneras partitions statistik.

    Syntax:PARTITION ( partition_col_name [ = partition_col_val ] [ , ... ] )

  • [NOSCAN | FÖR KOLUMNerna kol [,...] | FÖR ALLA KOLUMNER]

    Om du inte anger något analys alternativ ANALYZE TABLE samlar tabellens antal rader och storlek i byte.

    • Noscan

      Samla bara in tabellens storlek i byte (som inte kräver att hela tabellen genomsöks).

    • FÖR KOLUMNerna kol [,...] | FÖR ALLA KOLUMNER

      Samla in kolumn statistik för varje kolumn som anges eller alternativt för varje kolumn, samt tabell statistik.

Exempel

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|       |
|                 ...|                 ...|    ...|
|  Partition Provider|             Catalog|       |
+--------------------+--------------------+-------+

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|       |
|                 ...|                 ...|    ...|
|  Partition Provider|             Catalog|       |
+--------------------+--------------------+-------+

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|
+--------------+----------+