diff --git a/docs/sql-ref-syntax-aux-analyze-table.md b/docs/sql-ref-syntax-aux-analyze-table.md index da5338564c..0e65de17d6 100644 --- a/docs/sql-ref-syntax-aux-analyze-table.md +++ b/docs/sql-ref-syntax-aux-analyze-table.md @@ -21,7 +21,8 @@ license: | ### Description -The `ANALYZE TABLE` statement collects statistics about the table to be used by the query optimizer to find a better query execution plan. +The `ANALYZE TABLE` statement collects statistics about one specific table or all the tables in one specified database, +that are to be used by the query optimizer to find a better query execution plan. ### Syntax @@ -30,6 +31,10 @@ ANALYZE TABLE table_identifier [ partition_spec ] COMPUTE STATISTICS [ NOSCAN | FOR COLUMNS col [ , ... ] | FOR ALL COLUMNS ] ``` +```sql +ANALYZE TABLES [ { FROM | IN } database_name ] COMPUTE STATISTICS [ NOSCAN ] +``` + ### Parameters * **table_identifier** @@ -45,22 +50,31 @@ ANALYZE TABLE table_identifier [ partition_spec ] **Syntax:** `PARTITION ( partition_col_name [ = partition_col_val ] [ , ... ] )` -* **[ NOSCAN `|` FOR COLUMNS col [ , ... ] `|` FOR ALL COLUMNS ]** +* **{ FROM `|` IN } database_name** - * If no analyze option is specified, `ANALYZE TABLE` collects the table's number of rows and size in bytes. - * **NOSCAN** + Specifies the name of the database to be analyzed. Without a database name, `ANALYZE` collects all tables in the current database that the current user has permission to analyze. - Collects only the table's size in bytes (which does not require scanning the entire table). - * **FOR COLUMNS col [ , ... ] `|` FOR ALL COLUMNS** +* **NOSCAN** - Collects column statistics for each column specified, or alternatively for every column, as well as table statistics. + Collects only the table's size in bytes (which does not require scanning the entire table). + +* **FOR COLUMNS col [ , ... ] `|` FOR ALL COLUMNS** + + Collects column statistics for each column specified, or alternatively for every column, as well as table statistics. + +If no analyze option is specified, both number of rows and size in bytes are collected. ### Examples ```sql +CREATE DATABASE school_db; +USE school_db; + +CREATE TABLE teachers (name STRING, teacher_id INT); +INSERT INTO teachers VALUES ('Tom', 1), ('Jerry', 2); + 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'); +INSERT INTO students VALUES ('Mark', 111111), ('John', 222222); ANALYZE TABLE students COMPUTE STATISTICS NOSCAN; @@ -73,7 +87,6 @@ DESC EXTENDED students; | ...| ...| ...| | Statistics| 864 bytes| | | ...| ...| ...| -| Partition Provider| Catalog| | +--------------------+--------------------+-------+ ANALYZE TABLE students COMPUTE STATISTICS; @@ -87,7 +100,6 @@ DESC EXTENDED students; | ...| ...| ...| | Statistics| 864 bytes, 2 rows| | | ...| ...| ...| -| Partition Provider| Catalog| | +--------------------+--------------------+-------+ ANALYZE TABLE students PARTITION (student_id = 111111) COMPUTE STATISTICS; @@ -101,7 +113,6 @@ DESC EXTENDED students PARTITION (student_id = 111111); | ...| ...| ...| |Partition Statistics| 432 bytes, 1 rows| | | ...| ...| ...| -| OutputFormat|org.apache.hadoop...| | +--------------------+--------------------+-------+ ANALYZE TABLE students COMPUTE STATISTICS FOR COLUMNS name; @@ -121,8 +132,52 @@ DESC EXTENDED students name; | max_col_len| 4| | histogram| NULL| +--------------+----------+ + +ANALYZE TABLES IN school_db 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| | +| ...| ...| ...| ++--------------------+--------------------+-------+ ``` - -### Related Statements - -* [ANALYZE TABLES](sql-ref-syntax-aux-analyze-tables.html) diff --git a/docs/sql-ref-syntax-aux-analyze-tables.md b/docs/sql-ref-syntax-aux-analyze-tables.md deleted file mode 100644 index f70cfa4d7d..0000000000 --- a/docs/sql-ref-syntax-aux-analyze-tables.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -layout: global -title: ANALYZE TABLES -displayTitle: ANALYZE TABLES -license: | - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---- - -### Description - -The `ANALYZE TABLES` statement collects statistics about all the tables in a specified database to be used by the query optimizer to find a better query execution plan. - -### Syntax - -```sql -ANALYZE TABLES [ { FROM | IN } database_name ] COMPUTE STATISTICS [ NOSCAN ] -``` - -### Parameters - -* **{ FROM `|` IN } database_name** - - Specifies the name of the database to be analyzed. Without a database name, `ANALYZE` collects all tables in the current database that the current user has permission to analyze. - -* **[ NOSCAN ]** - - Collects only the table's size in bytes (which does not require scanning the entire table). - -### Examples - -```sql -CREATE DATABASE school_db; -USE school_db; - -CREATE TABLE teachers (name STRING, teacher_id INT); -INSERT INTO teachers VALUES ('Tom', 1), ('Jerry', 2); - -CREATE TABLE students (name STRING, student_id INT, age SHORT); -INSERT INTO students VALUES ('Mark', 111111, 10), ('John', 222222, 11); - -ANALYZE TABLES IN school_db COMPUTE STATISTICS NOSCAN; - -DESC EXTENDED teachers; -+--------------------+--------------------+-------+ -| col_name| data_type|comment| -+--------------------+--------------------+-------+ -| name| string| null| -| teacher_id| int| null| -| ...| ...| ...| -| Provider| parquet| | -| Statistics| 1382 bytes| | -| ...| ...| ...| -+--------------------+--------------------+-------+ - -DESC EXTENDED students; -+--------------------+--------------------+-------+ -| col_name| data_type|comment| -+--------------------+--------------------+-------+ -| name| string| null| -| student_id| int| null| -| age| smallint| null| -| ...| ...| ...| -| Statistics| 1828 bytes| | -| ...| ...| ...| -+--------------------+--------------------+-------+ - -ANALYZE TABLES COMPUTE STATISTICS; - -DESC EXTENDED teachers; -+--------------------+--------------------+-------+ -| col_name| data_type|comment| -+--------------------+--------------------+-------+ -| name| string| null| -| teacher_id| int| null| -| ...| ...| ...| -| Provider| parquet| | -| Statistics| 1382 bytes, 2 rows| | -| ...| ...| ...| -+--------------------+--------------------+-------+ - -DESC EXTENDED students; -+--------------------+--------------------+-------+ -| col_name| data_type|comment| -+--------------------+--------------------+-------+ -| name| string| null| -| student_id| int| null| -| age| smallint| null| -| ...| ...| ...| -| Provider| parquet| | -| Statistics| 1828 bytes, 2 rows| | -| ...| ...| ...| -+--------------------+--------------------+-------+ -``` - -### Related Statements - -* [ANALYZE TABLE](sql-ref-syntax-aux-analyze-table.html) diff --git a/docs/sql-ref-syntax-aux-analyze.md b/docs/sql-ref-syntax-aux-analyze.md deleted file mode 100644 index 7808966ffe..0000000000 --- a/docs/sql-ref-syntax-aux-analyze.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -layout: global -title: Analyze Statement -displayTitle: Analyze Statement -license: | - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---- - - * [ANALYZE TABLE statement](sql-ref-syntax-aux-analyze-table.html) - * [ANALYZE TABLES statement](sql-ref-syntax-aux-analyze-tables.html) diff --git a/docs/sql-ref-syntax.md b/docs/sql-ref-syntax.md index cb7a04d0dd..2165ea3734 100644 --- a/docs/sql-ref-syntax.md +++ b/docs/sql-ref-syntax.md @@ -90,7 +90,6 @@ ability to generate logical and physical plan for a given query using * [ADD FILE](sql-ref-syntax-aux-resource-mgmt-add-file.html) * [ADD JAR](sql-ref-syntax-aux-resource-mgmt-add-jar.html) * [ANALYZE TABLE](sql-ref-syntax-aux-analyze-table.html) - * [ANALYZE TABLES](sql-ref-syntax-aux-analyze-tables.html) * [CACHE TABLE](sql-ref-syntax-aux-cache-cache-table.html) * [CLEAR CACHE](sql-ref-syntax-aux-cache-clear-cache.html) * [DESCRIBE DATABASE](sql-ref-syntax-aux-describe-database.html)