diff --git a/docs/sql-manual/sql-statements/statistics/ANALYZE.md b/docs/sql-manual/sql-statements/statistics/ANALYZE.md index 7b52084392803..a09f206d040cf 100644 --- a/docs/sql-manual/sql-statements/statistics/ANALYZE.md +++ b/docs/sql-manual/sql-statements/statistics/ANALYZE.md @@ -27,33 +27,66 @@ under the License. ## Description -This statement is used to collect statistical information for various columns. +This statement is used to collect column statistics. Statistics of columns can be collected for a table (specific columns can be specified) or for the entire database. + +## Syntax ```sql -ANALYZE < TABLE | DATABASE table_name | db_name > - [ (column_name [, ...]) ] - [ [ WITH SYNC ] [ WITH SAMPLE PERCENT | ROWS ] ]; +ANALYZE {TABLE [ ( [, ...]) ] | DATABASE } + [ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} ] ]; ``` -- `table_name`: The specified target table. It can be in the format `db_name.table_name`. -- `column_name`: The specified target column. It must be an existing column in `table_name`. You can specify multiple column names separated by commas. -- `sync`: Collect statistics synchronously. Returns after collection. If not specified, it executes asynchronously and returns a JOB ID. -- `sample percent | rows`: Collect statistics with sampling. You can specify a sampling percentage or a number of sampling rows. +## Required Parameters + +**1. ``** + +> The specified target table. This parameter and the parameter must have and can only have one of them specified. + +**2. ``** + +> The specified target database. This parameter and the parameter must have and can only have one of them specified. + +## Optional Parameters + +**1. ``** + +> The specified target column. It must be an existing column in `table_name`. You can specify multiple column names separated by commas. + +**2. `WITH SYNC`** + +> Collect statistics synchronously. Returns after collection. If not specified, it executes asynchronously. -## Example +**3. `WITH SAMPLE {PERCENT | ROWS} `** -Collect statistical data for a table with a 10% sampling rate: +> Specify to use the sampling method for collection. When not specified, full collection is the default. is the sampling parameter. When using PERCENT sampling, it specifies the sampling percentage; when using ROWS sampling, it specifies the number of sampled rows. + +## Return Value + +| Column | Note | +| -- |--------------| +| Job_Id | Unique Job Id | +| Catalog_Name | Catalog name | +| DB_Name | database name | +| Columns | column name list | + +## Access Control Requirements + +The user who executes this SQL must have at least the following permissions: + +| Privilege | Object | Notes | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | Table | When executing ANALYZE, the SELECT_PRIV privilege for the queried table is required. | + +## Examples + +1. Collect statistics by sampling 10% of table lineitem. ```sql ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10; ``` -Collect statistical data for a table with a sample of 100,000 rows: +2. Collect statistics by sampling 100,000 rows from table lineitem. ```sql ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000; -``` - -## Keywords -ANALYZE \ No newline at end of file diff --git a/docs/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md b/docs/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md index 8aa6372b6cd85..3f57274002a1e 100644 --- a/docs/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md +++ b/docs/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md @@ -24,82 +24,95 @@ specific language governing permissions and limitations under the License. --> - - ## Description -Use `SHOW ANALYZE` to view information about statistics collection jobs. +This statement is used to view the status of the statistics collection job. -Syntax: +## Syntax ```SQL -SHOW [AUTO] ANALYZE < table_name | job_id > - [ WHERE [ STATE = [ "PENDING" | "RUNNING" | "FINISHED" | "FAILED" ] ] ]; +SHOW [AUTO] ANALYZE [ < table_name > | < job_id > ] + [ WHERE STATE = { "PENDING" | "RUNNING" | "FINISHED" | "FAILED" } ]; ``` -- AUTO: Show historical information for automatic collection jobs only. Note that, by default, the status of only the last 20,000 completed automatic collection jobs is retained. -- table_name: Table name, specify to view statistics job information for that table. It can be in the format `db_name.table_name`. When not specified, it returns information for all statistics jobs. -- job_id: Job ID for statistics collection, obtained when executing `ANALYZE`. When not specified, this command returns information for all statistics jobs. +## Required Parameters -Output: +**None** -| Column Name | Description | -| :--------------------- | :--------------- | -| `job_id` | Job ID | -| `catalog_name` | Catalog Name | -| `db_name` | Database Name | -| `tbl_name` | Table Name | -| `col_name` | Column Name List | -| `job_type` | Job Type | -| `analysis_type` | Analysis Type | -| `message` | Job Information | -| `last_exec_time_in_ms` | Last Execution Time | -| `state` | Job Status | -| `schedule_type` | Scheduling Method | +## Optional Parameters -Here's an example: +**1. `AUTO `** -```sql -mysql> show analyze 245073\G; -*************************** 1. row *************************** - job_id: 245073 - catalog_name: internal - db_name: default_cluster:tpch - tbl_name: lineitem - col_name: [l_returnflag,l_receiptdate,l_tax,l_shipmode,l_suppkey,l_shipdate,l_commitdate,l_partkey,l_orderkey,l_quantity,l_linestatus,l_comment,l_extendedprice,l_linenumber,l_discount,l_shipinstruct] - job_type: MANUAL - analysis_type: FUNDAMENTALS - message: -last_exec_time_in_ms: 2023-11-07 11:00:52 - state: FINISHED - progress: 16 Finished | 0 Failed | 0 In Progress | 16 Total - schedule_type: ONCE -``` +> Show information about automatic jobs. If not specified, information about manual jobs will be displayed by default. + +**2. `< table_name > `** + +> Table name. After specifying it, you can view the job information corresponding to this table. When not specified, the job information of all tables will be returned by default. + +**3. `< job_id > `** + +> Statistics Job ID,Obtained when performing asynchronous collection with ANALYZE. When the ID is not specified, this command returns information about all jobs. + +## Return Value -
+| Column | Note | +| -- |--------------| +| job_id | Unique statistics job id | +| catalog_name | Catalog name | +| db_name | database name | +| tbl_name | table name | +| col_name | column name list | +| job_type | job type | +| analysis_type | analysis type | +| message | error message | +| last_exec_time_in_ms | last analyze time | +| state | job state | +| progress | job progress | +| schedule_type | schedule type | +| start_time | job start time | +| end_time | job end time | +| priority | job priority | +| enable_partition | enable partition collection flag | -Each collection job can contain one or more tasks, with each task corresponding to the collection of a column. Users can use the following command to view the completion status of statistics collection for each column. +## Access Control Requirements -Syntax: +The user who executes this SQL must have at least the following permissions: + +| Privilege | Object | Notes | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | Table | When executing SHOW, the SELECT_PRIV privilege for the queried table is required. | + +## Examples + +1. Show jobs by table name. ```sql -SHOW ANALYZE TASK STATUS [job_id] +SHOW ANALYZE test1 WHERE STATE="FINISHED"; ``` -Here's an example: - +```text ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1737454119144 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-01-21 18:10:11 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-01-21 18:10:10 | 2025-01-21 18:10:11 | MANUAL | false | +| 1738725887879 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 11:26:15 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 11:26:15 | 2025-02-05 11:26:15 | MANUAL | false | +| 1738725887890 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:09 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 12:17:08 | 2025-02-05 12:17:09 | MANUAL | false | +| 1738725887895 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:24 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:23 | 2025-02-05 12:17:24 | MANUAL | false | +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ ``` -mysql> show analyze task status 20038 ; -+---------+----------+---------+----------------------+----------+ -| task_id | col_name | message | last_exec_time_in_ms | state | -+---------+----------+---------+----------------------+----------+ -| 20039 | col4 | | 2023-06-01 17:22:15 | FINISHED | -| 20040 | col2 | | 2023-06-01 17:22:15 | FINISHED | -| 20041 | col3 | | 2023-06-01 17:22:15 | FINISHED | -| 20042 | col1 | | 2023-06-01 17:22:15 | FINISHED | -+---------+----------+---------+----------------------+----------+ + +2. Show job by job id. + +```sql +show analyze 1738725887903; ``` -## Keywords +```text ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +``` -SHOW, ANALYZE diff --git a/docs/sql-manual/sql-statements/statistics/SHOW-STATS.md b/docs/sql-manual/sql-statements/statistics/SHOW-STATS.md index e387bc9cd1e07..77cc3676b338e 100644 --- a/docs/sql-manual/sql-statements/statistics/SHOW-STATS.md +++ b/docs/sql-manual/sql-statements/statistics/SHOW-STATS.md @@ -24,43 +24,90 @@ specific language governing permissions and limitations under the License. --> - ## Description -Use `SHOW COLUMN STATS` to view various statistics data for columns. +This statement is used to show the column statistics of a table. -Syntax: +## Syntax -```sql -SHOW COLUMN [cached] STATS table_name [ (column_name [, ...]) ]; +```SQL +SHOW COLUMN [CACHED] STATS < table_name > [ ( [, ...]) ]; ``` -Where: +## Required Parameters + +**1. ``** + +> The name of the table for which column statistics needs to be displayed. + +## Optional Parameters + +**1. `CACHED `** + +> Show the column statistics in FE cache. When not specified, the information persisted in the statistics table is displayed by default. + +**2. ``** + +> Specify the column names that need to be displayed. The column names must exist in the table, and multiple column names are separated by commas. If not specified, the information of all columns will be displayed by default. + +## Return Value -- cached: Show statistics information in the current FE memory cache. -- table_name: The target table for collecting statistics. It can be in the format `db_name.table_name`. -- column_name: Specifies the target column, which must be an existing column in `table_name`. You can specify multiple column names separated by commas. +| Column | Note | +| -- |--------------| +| column_name | column name | +| index_name | index name | +| count | column row count | +| ndv | column distinct value | +| num_null | column null count | +| data_size | column total data size | +| avg_size_byte | column average size | +| min | min value | +| max | max value | +| method | collect method | +| type | collect type | +| trigger | job trigger method | +| query_times | query times | +| updated_time | update time | +| update_rows | update rows when last analyze | +| last_analyze_row_count | table row count when last analyze | +| last_analyze_version | table version when last analyze | -Here's an example: +## Access Control Requirements + +The user who executes this SQL must have at least the following permissions: + +| Privilege | Object | Notes | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | Table | When executing SHOW, the SELECT_PRIV privilege for the queried table is required. | + +## Examples + +1. Show the statistics of all columns in table test1. ```sql -mysql> show column stats lineitem(l_tax)\G; -*************************** 1. row *************************** - column_name: l_tax - count: 6001215.0 - ndv: 9.0 - num_null: 0.0 - data_size: 4.800972E7 -avg_size_byte: 8.0 - min: 0.00 - max: 0.08 - method: FULL - type: FUNDAMENTALS - trigger: MANUAL - query_times: 0 - updated_time: 2023-11-07 11:00:46 +SHOW COLUMN STATS test1; +``` + +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ ``` -## Keywords +2. Show the statistics of all columns in the test1 in the current FE cache. -SHOW, TABLE, STATS +```sql +SHOW COLUMN CACHED STATS test1; +``` + +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +``` diff --git a/docs/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md b/docs/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md index f880081efdfde..c95131bfc43ae 100644 --- a/docs/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md +++ b/docs/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md @@ -24,46 +24,61 @@ specific language governing permissions and limitations under the License. --> +## Description -### Description +This statement is used to view the overview statistics of a table. -Use `SHOW TABLE STATS` to view an overview of statistics collection for a table. - -Syntax: +## Syntax ```SQL -SHOW TABLE STATS table_name; +SHOW TABLE STATS < table_name >; ``` -Where: +## Required Parameters -- table_name: The target table name. It can be in the format `db_name.table_name`. +**1. ` `** -Output: +> Table name -| Column Name | Description | -| :--------------------- | :--------------- | -| `updated_rows` | Updated rows since the last ANALYZE | -| `query_times` | Reserved column for recording the number of times the table was queried in future versions | -| `row_count` | Number of rows (does not reflect the exact number of rows at the time of command execution) | -| `updated_time` | Last update time | -| `columns` | Columns for which statistics information has been collected | +## Optional Parameters -Here's an example: +**None** -```sql -mysql> show table stats lineitem \G; -*************************** 1. row *************************** -updated_rows: 0 - query_times: 0 - row_count: 6001215 -updated_time: 2023-11-07 - columns: [l_returnflag, l_receiptdate, l_tax, l_shipmode, l_suppkey, l_shipdate, l_commitdate, l_partkey, l_orderkey, l_quantity, l_linestatus, l_comment, l_extendedprice, l_linenumber, l_discount, l_shipinstruct] - trigger: MANUAL -``` +## Return Value + +| Column | Note | +| -- |--------------| +| updated_rows | table updated row count | +| query_times | table query times | +| row_count | table row count | +| updated_time | table last modified time | +| columns | analyzed column list | +| trigger | last analyze trigger method | +| new_partition | flag of new partition first loaded | +| user_inject | flag of user inject statistics | +| enable_auto_analyze | flag of auto analyzed enabled | +| last_analyze_time | last analyze time | + +## Access Control Requirements + +The user who executes this SQL must have at least the following permissions: -
+| Privilege | Object | Notes | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | Table | When executing SHOW, the SELECT_PRIV privilege for the queried table is required. | -### Keywords +## Examples -SHOW, TABLE, STATS +1. Show the overview statistics of table test1. + +```sql +SHOW TABLE STATS test1; +``` + +```text ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| updated_rows | query_times | row_count | updated_time | columns | trigger | new_partition | user_inject | enable_auto_analyze | last_analyze_time | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| 0 | 0 | 100000 | 2025-01-17 16:46:31 | [test1:name, test1:id] | MANUAL | false | false | true | 2025-02-05 12:17:41 | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/ANALYZE.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/ANALYZE.md index b12f4c56a9136..ab44d20b1bec5 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/ANALYZE.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/ANALYZE.md @@ -24,38 +24,69 @@ specific language governing permissions and limitations under the License. --> - - - ## 描述 -该语句用于收集各列的统计信息。 +该语句用于收集统计信息。可以针对表(可以指定具体列)或整个数据库进行列统计信息的收集。 + +## 语法 ```sql -ANALYZE < TABLE | DATABASE table_name | db_name > - [ (column_name [, ...]) ] - [ [ WITH SYNC ] [ WITH SAMPLE PERCENT | ROWS ] ]; +ANALYZE {TABLE [ ( [, ...]) ] | DATABASE } + [ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} ] ]; ``` -- table_name: 指定的目标表。可以是  `db_name.table_name`  形式。 -- column_name: 指定的目标列。必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 -- sync:同步收集统计信息。收集完后返回。若不指定则异步执行并返回 JOB ID。 -- sample percent | rows:抽样收集统计信息。可以指定抽样比例或者抽样行数。 +## 必选参数 + +**1. ``** + +> 指定的目标表。该参数与``参数必须且只能指定其中之一。 + +**2. ``** + +> 指定的目标数据库。该参数与``参数必须且只能指定其中之一。 + +## 可选参数 + +**1. ``** + +> 指定表的目标列。必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 -## 示例 +**2. `WITH SYNC`** -对一张表按照 10% 的比例采样收集统计数据: +> 指定同步执行该ANALYZE语句。不指定时默认后台异步执行。 + +**3. `WITH SAMPLE {PERCENT | ROWS} `** + +> 指定使用抽样方式收集。当不指定时,默认为全量收集。 为抽样参数,在PERCENT采样时指定抽样百分比,ROWS采样时指定抽样行数。 + +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| Job_Id | 收集作业的唯一ID | +| Catalog_Name | Catalog名 | +| DB_Name | 数据库名 | +| Columns | 收集的列列表 | + +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 ANALYZE 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 举例 + +1. 对lineitem表按照 10% 的比例采样收集统计数据: ```sql ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10; ``` -对一张表按采样 10 万行收集统计数据 +2. 对lineitem表按采样 10 万行收集统计数据 ```sql ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000; ``` -## 关键词 - -ANALYZE diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md index be0c2af6f7c3d..7a26cfe97c3c4 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md @@ -24,83 +24,95 @@ specific language governing permissions and limitations under the License. --> - ## 描述 -通过 `SHOW ANALYZE` 来查看统计信息收集作业的信息。 +该语句用来查看统计信息收集作业的状态。 -语法如下: +## 语法 ```SQL -SHOW [AUTO] ANALYZE < table_name | job_id > - [ WHERE [ STATE = [ "PENDING" | "RUNNING" | "FINISHED" | "FAILED" ] ] ]; +SHOW [AUTO] ANALYZE [ < table_name > | < job_id > ] + [ WHERE STATE = { "PENDING" | "RUNNING" | "FINISHED" | "FAILED" } ]; ``` -- AUTO:仅仅展示自动收集历史作业信息。需要注意的是默认只保存过去 20000 个执行完毕的自动收集作业的状态。 -- table_name:表名,指定后可查看该表对应的统计作业信息。可以是  `db_name.table_name`  形式。不指定时返回所有统计作业信息。 -- job_id:统计信息作业 ID,执行 `ANALYZE` 异步收集时得到。不指定 id 时此命令返回所有统计作业信息。 +## 必选参数 -输出: +**无** -| 列名 | 说明 | -| :--------------------- | :----------- | -| `job_id` | 统计作业 ID | -| `catalog_name` | catalog 名称 | -| `db_name` | 数据库名称 | -| `tbl_name` | 表名称 | -| `col_name` | 列名称列表 | -| `job_type` | 作业类型 | -| `analysis_type` | 统计类型 | -| `message` | 作业信息 | -| `last_exec_time_in_ms` | 上次执行时间 | -| `state` | 作业状态 | -| `schedule_type` | 调度方式 | +## 可选参数 -下面是一个例子: +**1. `AUTO `** -```sql -mysql> show analyze 245073\G; -*************************** 1. row *************************** - job_id: 245073 - catalog_name: internal - db_name: default_cluster:tpch - tbl_name: lineitem - col_name: [l_returnflag,l_receiptdate,l_tax,l_shipmode,l_suppkey,l_shipdate,l_commitdate,l_partkey,l_orderkey,l_quantity,l_linestatus,l_comment,l_extendedprice,l_linenumber,l_discount,l_shipinstruct] - job_type: MANUAL - analysis_type: FUNDAMENTALS - message: -last_exec_time_in_ms: 2023-11-07 11:00:52 - state: FINISHED - progress: 16 Finished | 0 Failed | 0 In Progress | 16 Total - schedule_type: ONCE -``` +> 展示自动作业信息。如不指定,默认显示手动作业信息。 + +**2. `< table_name > `** + +> 表名。指定后可查看该表对应的作业信息。不指定时默认返回所有表的作业信息。 + +**3. `< job_id > `** + +> 统计信息作业 ID,执行 `ANALYZE` 异步收集时得到。不指定 id 时此命令返回所有作业信息。 -
+## 返回值 -每个收集作业中可以包含一到多个任务,每个任务对应一列的收集。用户可通过如下命令查看具体每列的统计信息收集完成情况。 +| 列名 | 说明 | +| -- |--------------| +| job_id | 收集作业的唯一ID | +| catalog_name | Catalog名 | +| db_name | 数据库名 | +| tbl_name | 表名 | +| col_name | 收集的列列表 | +| job_type | 作业类型 | +| analysis_type | 分析类型 | +| message | 错误信息 | +| last_exec_time_in_ms | 上次收集完成时间 | +| state | 作业状态 | +| progress | 作业进度 | +| schedule_type | 调度类型 | +| start_time | 作业开始时间 | +| end_time | 作业结束时间 | +| priority | 作业优先级 | +| enable_partition | 是否开启分区收集 | -语法: +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 举例 + +1. 通过表名展示作业 ```sql -SHOW ANALYZE TASK STATUS [job_id] +SHOW ANALYZE test1 WHERE STATE="FINISHED"; ``` -下面是一个例子: - +```text ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1737454119144 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-01-21 18:10:11 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-01-21 18:10:10 | 2025-01-21 18:10:11 | MANUAL | false | +| 1738725887879 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 11:26:15 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 11:26:15 | 2025-02-05 11:26:15 | MANUAL | false | +| 1738725887890 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:09 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 12:17:08 | 2025-02-05 12:17:09 | MANUAL | false | +| 1738725887895 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:24 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:23 | 2025-02-05 12:17:24 | MANUAL | false | +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ ``` -mysql> show analyze task status 20038 ; -+---------+----------+---------+----------------------+----------+ -| task_id | col_name | message | last_exec_time_in_ms | state | -+---------+----------+---------+----------------------+----------+ -| 20039 | col4 | | 2023-06-01 17:22:15 | FINISHED | -| 20040 | col2 | | 2023-06-01 17:22:15 | FINISHED | -| 20041 | col3 | | 2023-06-01 17:22:15 | FINISHED | -| 20042 | col1 | | 2023-06-01 17:22:15 | FINISHED | -+---------+----------+---------+----------------------+----------+ +2. 通过作业 ID 展示作业 +```sql +show analyze 1738725887903; ``` -## 关键词 +```text ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +``` -SHOW, ANALYZE diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-STATS.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-STATS.md index 604cd375aec3d..1eef0c05d9320 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-STATS.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-STATS.md @@ -1,6 +1,6 @@ --- { - "title": "SHOW STATS", + "title": "SHOW COLUMN STATS", "language": "zh-CN" } --- @@ -26,41 +26,88 @@ under the License. ## 描述 -通过 `SHOW COLUMN STATS` 来查看列的各项统计数据。 +该语句用来查看表的列统计信息。 -语法如下: +## 语法 ```SQL -SHOW COLUMN [cached] STATS table_name [ (column_name [, ...]) ]; +SHOW COLUMN [CACHED] STATS < table_name > [ ( [, ...]) ]; ``` -其中: +## 必选参数 -- cached: 展示当前 FE 内存缓存中的统计信息。 -- table_name: 收集统计信息的目标表。可以是  `db_name.table_name`  形式。 -- column_name: 指定的目标列,必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 +**1. ``** -下面是一个例子: +> 需要展示列统计信息的表名。 + +## 可选参数 + +**1. `CACHED `** + +> 显示FE缓存中的统计信息。不指定的时候默认显示统计信息表中持久化的信息。 + +**2. ``** + +> 指定需要显示的列名。列名在表中必须存在,多个列名之间用逗号分隔。如果不指定,默认显示所有列的信息。 + +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| column_name | 列名 | +| index_name | 列所属的索引名 | +| count | 列的行数 | +| ndv | 列的基数 | +| num_null | 列的空值数 | +| data_size | 列的总数据量 | +| avg_size_byte | 列的平均字节数 | +| min | 列的最小值 | +| max | 列的最大值 | +| method | 收集方式 | +| type | 收集类型 | +| trigger | 触发方式 | +| query_times | 信息被查询次数 | +| updated_time | 信息更新时间 | +| update_rows | 上次收集时数据更新行数 | +| last_analyze_row_count | 上次收集时表的总行数 | +| last_analyze_version | 上次收集时表的版本值 | + +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 举例 + +1. 展示表test1所有列的统计信息 ```sql -mysql> show column stats lineitem(l_tax)\G; -*************************** 1. row *************************** - column_name: l_tax - count: 6001215.0 - ndv: 9.0 - num_null: 0.0 - data_size: 4.800972E7 -avg_size_byte: 8.0 - min: 0.00 - max: 0.08 - method: FULL - type: FUNDAMENTALS - trigger: MANUAL - query_times: 0 - updated_time: 2023-11-07 11:00:46 +SHOW COLUMN STATS test1; +``` +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ ``` -## 关键词 +2. 展示表test1所有列在当前FE缓存中的统计信息 -SHOW, COLUMN, STATS +```sql +SHOW COLUMN CACHED STATS test1; +``` + +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md index 22779d9da485c..5ac847d96c71a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md @@ -24,49 +24,61 @@ specific language governing permissions and limitations under the License. --> +## 描述 -### 描述 +该语句用来查看表的统计信息收集概况。 -通过 `SHOW TABLE STATS` 查看表的统计信息收集概况。 - -语法如下: +## 语法 ```SQL -SHOW TABLE STATS table_name; +SHOW TABLE STATS < table_name >; ``` -其中: +## 必选参数 -- table_name: 目标表表名。可以是  `db_name.table_name`  形式。 +**1. ` `** -输出: +> 目标表名 -| 列名 | 说明 | -| :------------------ | :--------------------- | -|`updated_rows`|自上次 ANALYZE 以来该表的更新行数| -|`query_times`|保留列,后续版本用以记录该表查询次数| -|`row_count`| 行数(不反映命令执行时的准确行数)| -|`updated_time`| 上次更新时间| -|`columns`| 收集过统计信息的列| -|`trigger`|触发方式| +## 可选参数 -下面是一个例子: +**无** -```sql -mysql> show table stats lineitem \G; -*************************** 1. row *************************** -updated_rows: 0 - query_times: 0 - row_count: 6001215 -updated_time: 2023-11-07 - columns: [l_returnflag, l_receiptdate, l_tax, l_shipmode, l_suppkey, l_shipdate, l_commitdate, l_partkey, l_orderkey, l_quantity, l_linestatus, l_comment, l_extendedprice, l_linenumber, l_discount, l_shipinstruct] - trigger: MANUAL -``` +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| updated_rows | 表当前更新行数 | +| query_times | 表被查询次数 | +| row_count | 表当前的总行数 | +| updated_time | 表上次更新时间 | +| columns | 收集过的列列表 | +| trigger | 收集触发方式 | +| new_partition | 是否有新分区首次导入数据 | +| user_inject | 用户是否手动注入了统计信息 | +| enable_auto_analyze | 这张表是否参与统计信息自动收集 | +| last_analyze_time | 上次收集时间 | + +## 权限控制 -
+执行此 SQL 命令的用户必须至少具有以下权限: -
+| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | -### 关键词 +## 举例 -SHOW, TABLE, STATS +1. 展示表test1的统计信息概况 + +```sql +SHOW TABLE STATS test1; +``` + +```text ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| updated_rows | query_times | row_count | updated_time | columns | trigger | new_partition | user_inject | enable_auto_analyze | last_analyze_time | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| 0 | 0 | 100000 | 2025-01-17 16:46:31 | [test1:name, test1:id] | MANUAL | false | false | true | 2025-02-05 12:17:41 | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/ANALYZE.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/ANALYZE.md index b12f4c56a9136..316a750f76444 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/ANALYZE.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/ANALYZE.md @@ -24,38 +24,74 @@ specific language governing permissions and limitations under the License. --> - - - ## 描述 -该语句用于收集各列的统计信息。 +该语句用于收集统计信息。可以针对表(可以指定具体列)或整个数据库进行列统计信息的收集。 + +## 语法 ```sql -ANALYZE < TABLE | DATABASE table_name | db_name > - [ (column_name [, ...]) ] - [ [ WITH SYNC ] [ WITH SAMPLE PERCENT | ROWS ] ]; +ANALYZE {TABLE [ ( [, ...]) ] | DATABASE } + [ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} ] ]; ``` -- table_name: 指定的目标表。可以是  `db_name.table_name`  形式。 -- column_name: 指定的目标列。必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 -- sync:同步收集统计信息。收集完后返回。若不指定则异步执行并返回 JOB ID。 -- sample percent | rows:抽样收集统计信息。可以指定抽样比例或者抽样行数。 +## 必选参数 + +**1. ``** + +> 指定的目标表。该参数与``参数必须且只能指定其中之一。 + +**2. ``** + +> 指定的目标数据库。该参数与``参数必须且只能指定其中之一。 + +## 可选参数 + +**1. ``** + +> 指定表的目标列。必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 + +**2. `WITH SYNC`** -## 示例 +> 指定同步执行该ANALYZE语句。不指定时默认后台异步执行。 -对一张表按照 10% 的比例采样收集统计数据: +**3. `WITH SAMPLE {PERCENT | ROWS} `** + +> 指定使用抽样方式收集。当不指定时,默认为全量收集。 为抽样参数,在PERCENT采样时指定抽样百分比,ROWS采样时指定抽样行数。 + +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| Job_Id | 收集作业的唯一ID | +| Catalog_Name | Catalog名 | +| DB_Name | 数据库名 | +| Columns | 收集的列列表 | + +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 ANALYZE 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 注意事项 +- 如果指定 WITH SYNC,则语句没有返回值。当语句执行结束后,收集作业就已经完成 +- 不指定 WITH SYNC 时,语句在返回job id等信息后就结束了,收集作业在后台执行,可以通过show analyze语句查看执行状态 + + +## 举例 + +1. 对一张表按照 10% 的比例采样收集统计数据: ```sql ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10; ``` -对一张表按采样 10 万行收集统计数据 +2. 对一张表按采样 10 万行收集统计数据 ```sql ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000; ``` -## 关键词 - -ANALYZE diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md index 8ec8aa07dc3f9..7a26cfe97c3c4 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md @@ -24,83 +24,95 @@ specific language governing permissions and limitations under the License. --> - ## 描述 -通过 `SHOW ANALYZE` 来查看统计信息收集作业的信息。 +该语句用来查看统计信息收集作业的状态。 -语法如下: +## 语法 -```sql -SHOW [AUTO] ANALYZE < table_name | job_id > - [ WHERE [ STATE = [ "PENDING" | "RUNNING" | "FINISHED" | "FAILED" ] ] ]; +```SQL +SHOW [AUTO] ANALYZE [ < table_name > | < job_id > ] + [ WHERE STATE = { "PENDING" | "RUNNING" | "FINISHED" | "FAILED" } ]; ``` -- AUTO:仅仅展示自动收集历史作业信息。需要注意的是默认只保存过去 20000 个执行完毕的自动收集作业的状态。 -- table_name:表名,指定后可查看该表对应的统计作业信息。可以是  `db_name.table_name`  形式。不指定时返回所有统计作业信息。 -- job_id:统计信息作业 ID,执行 `ANALYZE` 异步收集时得到。不指定 id 时此命令返回所有统计作业信息。 +## 必选参数 -输出: +**无** -| 列名 | 说明 | -| :--------------------- | :----------- | -| `job_id` | 统计作业 ID | -| `catalog_name` | catalog 名称 | -| `db_name` | 数据库名称 | -| `tbl_name` | 表名称 | -| `col_name` | 列名称列表 | -| `job_type` | 作业类型 | -| `analysis_type` | 统计类型 | -| `message` | 作业信息 | -| `last_exec_time_in_ms` | 上次执行时间 | -| `state` | 作业状态 | -| `schedule_type` | 调度方式 | +## 可选参数 -下面是一个例子: +**1. `AUTO `** -```sql -mysql> show analyze 245073\G; -*************************** 1. row *************************** - job_id: 245073 - catalog_name: internal - db_name: default_cluster:tpch - tbl_name: lineitem - col_name: [l_returnflag,l_receiptdate,l_tax,l_shipmode,l_suppkey,l_shipdate,l_commitdate,l_partkey,l_orderkey,l_quantity,l_linestatus,l_comment,l_extendedprice,l_linenumber,l_discount,l_shipinstruct] - job_type: MANUAL - analysis_type: FUNDAMENTALS - message: -last_exec_time_in_ms: 2023-11-07 11:00:52 - state: FINISHED - progress: 16 Finished | 0 Failed | 0 In Progress | 16 Total - schedule_type: ONCE -``` +> 展示自动作业信息。如不指定,默认显示手动作业信息。 -
+**2. `< table_name > `** -每个收集作业中可以包含一到多个任务,每个任务对应一列的收集。用户可通过如下命令查看具体每列的统计信息收集完成情况。 +> 表名。指定后可查看该表对应的作业信息。不指定时默认返回所有表的作业信息。 -语法: +**3. `< job_id > `** -```sql -SHOW ANALYZE TASK STATUS [job_id] -``` +> 统计信息作业 ID,执行 `ANALYZE` 异步收集时得到。不指定 id 时此命令返回所有作业信息。 + +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| job_id | 收集作业的唯一ID | +| catalog_name | Catalog名 | +| db_name | 数据库名 | +| tbl_name | 表名 | +| col_name | 收集的列列表 | +| job_type | 作业类型 | +| analysis_type | 分析类型 | +| message | 错误信息 | +| last_exec_time_in_ms | 上次收集完成时间 | +| state | 作业状态 | +| progress | 作业进度 | +| schedule_type | 调度类型 | +| start_time | 作业开始时间 | +| end_time | 作业结束时间 | +| priority | 作业优先级 | +| enable_partition | 是否开启分区收集 | + +## 权限控制 -下面是一个例子: +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 举例 + +1. 通过表名展示作业 ```sql -mysql> show analyze task status 20038 ; -+---------+----------+---------+----------------------+----------+ -| task_id | col_name | message | last_exec_time_in_ms | state | -+---------+----------+---------+----------------------+----------+ -| 20039 | col4 | | 2023-06-01 17:22:15 | FINISHED | -| 20040 | col2 | | 2023-06-01 17:22:15 | FINISHED | -| 20041 | col3 | | 2023-06-01 17:22:15 | FINISHED | -| 20042 | col1 | | 2023-06-01 17:22:15 | FINISHED | -+---------+----------+---------+----------------------+----------+ +SHOW ANALYZE test1 WHERE STATE="FINISHED"; +``` +```text ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1737454119144 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-01-21 18:10:11 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-01-21 18:10:10 | 2025-01-21 18:10:11 | MANUAL | false | +| 1738725887879 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 11:26:15 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 11:26:15 | 2025-02-05 11:26:15 | MANUAL | false | +| 1738725887890 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:09 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 12:17:08 | 2025-02-05 12:17:09 | MANUAL | false | +| 1738725887895 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:24 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:23 | 2025-02-05 12:17:24 | MANUAL | false | +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +``` + +2. 通过作业 ID 展示作业 +```sql +show analyze 1738725887903; ``` -## 关键词 +```text ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +``` -SHOW, ANALYZE diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-STATS.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-STATS.md index 8eec3ab7f6b16..1eef0c05d9320 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-STATS.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-STATS.md @@ -1,6 +1,6 @@ --- { - "title": "SHOW STATS", + "title": "SHOW COLUMN STATS", "language": "zh-CN" } --- @@ -24,46 +24,90 @@ specific language governing permissions and limitations under the License. --> - - - ## 描述 -通过 `SHOW COLUMN STATS` 来查看列的各项统计数据。 +该语句用来查看表的列统计信息。 -语法如下: +## 语法 ```SQL -SHOW COLUMN [cached] STATS table_name [ (column_name [, ...]) ]; +SHOW COLUMN [CACHED] STATS < table_name > [ ( [, ...]) ]; ``` -其中: +## 必选参数 + +**1. ``** + +> 需要展示列统计信息的表名。 + +## 可选参数 + +**1. `CACHED `** + +> 显示FE缓存中的统计信息。不指定的时候默认显示统计信息表中持久化的信息。 + +**2. ``** + +> 指定需要显示的列名。列名在表中必须存在,多个列名之间用逗号分隔。如果不指定,默认显示所有列的信息。 -- cached: 展示当前 FE 内存缓存中的统计信息。 -- table_name: 收集统计信息的目标表。可以是  `db_name.table_name`  形式。 -- column_name: 指定的目标列,必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 +## 返回值 -下面是一个例子: +| 列名 | 说明 | +| -- |--------------| +| column_name | 列名 | +| index_name | 列所属的索引名 | +| count | 列的行数 | +| ndv | 列的基数 | +| num_null | 列的空值数 | +| data_size | 列的总数据量 | +| avg_size_byte | 列的平均字节数 | +| min | 列的最小值 | +| max | 列的最大值 | +| method | 收集方式 | +| type | 收集类型 | +| trigger | 触发方式 | +| query_times | 信息被查询次数 | +| updated_time | 信息更新时间 | +| update_rows | 上次收集时数据更新行数 | +| last_analyze_row_count | 上次收集时表的总行数 | +| last_analyze_version | 上次收集时表的版本值 | + +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 举例 + +1. 展示表test1所有列的统计信息 ```sql -mysql> show column stats lineitem(l_tax)\G; -*************************** 1. row *************************** - column_name: l_tax - count: 6001215.0 - ndv: 9.0 - num_null: 0.0 - data_size: 4.800972E7 -avg_size_byte: 8.0 - min: 0.00 - max: 0.08 - method: FULL - type: FUNDAMENTALS - trigger: MANUAL - query_times: 0 - updated_time: 2023-11-07 11:00:46 +SHOW COLUMN STATS test1; +``` +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ ``` -## 关键词 +2. 展示表test1所有列在当前FE缓存中的统计信息 -SHOW, COLUMN, STATS +```sql +SHOW COLUMN CACHED STATS test1; +``` + +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md index 22779d9da485c..5ac847d96c71a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-2.1/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md @@ -24,49 +24,61 @@ specific language governing permissions and limitations under the License. --> +## 描述 -### 描述 +该语句用来查看表的统计信息收集概况。 -通过 `SHOW TABLE STATS` 查看表的统计信息收集概况。 - -语法如下: +## 语法 ```SQL -SHOW TABLE STATS table_name; +SHOW TABLE STATS < table_name >; ``` -其中: +## 必选参数 -- table_name: 目标表表名。可以是  `db_name.table_name`  形式。 +**1. ` `** -输出: +> 目标表名 -| 列名 | 说明 | -| :------------------ | :--------------------- | -|`updated_rows`|自上次 ANALYZE 以来该表的更新行数| -|`query_times`|保留列,后续版本用以记录该表查询次数| -|`row_count`| 行数(不反映命令执行时的准确行数)| -|`updated_time`| 上次更新时间| -|`columns`| 收集过统计信息的列| -|`trigger`|触发方式| +## 可选参数 -下面是一个例子: +**无** -```sql -mysql> show table stats lineitem \G; -*************************** 1. row *************************** -updated_rows: 0 - query_times: 0 - row_count: 6001215 -updated_time: 2023-11-07 - columns: [l_returnflag, l_receiptdate, l_tax, l_shipmode, l_suppkey, l_shipdate, l_commitdate, l_partkey, l_orderkey, l_quantity, l_linestatus, l_comment, l_extendedprice, l_linenumber, l_discount, l_shipinstruct] - trigger: MANUAL -``` +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| updated_rows | 表当前更新行数 | +| query_times | 表被查询次数 | +| row_count | 表当前的总行数 | +| updated_time | 表上次更新时间 | +| columns | 收集过的列列表 | +| trigger | 收集触发方式 | +| new_partition | 是否有新分区首次导入数据 | +| user_inject | 用户是否手动注入了统计信息 | +| enable_auto_analyze | 这张表是否参与统计信息自动收集 | +| last_analyze_time | 上次收集时间 | + +## 权限控制 -
+执行此 SQL 命令的用户必须至少具有以下权限: -
+| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | -### 关键词 +## 举例 -SHOW, TABLE, STATS +1. 展示表test1的统计信息概况 + +```sql +SHOW TABLE STATS test1; +``` + +```text ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| updated_rows | query_times | row_count | updated_time | columns | trigger | new_partition | user_inject | enable_auto_analyze | last_analyze_time | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| 0 | 0 | 100000 | 2025-01-17 16:46:31 | [test1:name, test1:id] | MANUAL | false | false | true | 2025-02-05 12:17:41 | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/ANALYZE.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/ANALYZE.md index b12f4c56a9136..316a750f76444 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/ANALYZE.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/ANALYZE.md @@ -24,38 +24,74 @@ specific language governing permissions and limitations under the License. --> - - - ## 描述 -该语句用于收集各列的统计信息。 +该语句用于收集统计信息。可以针对表(可以指定具体列)或整个数据库进行列统计信息的收集。 + +## 语法 ```sql -ANALYZE < TABLE | DATABASE table_name | db_name > - [ (column_name [, ...]) ] - [ [ WITH SYNC ] [ WITH SAMPLE PERCENT | ROWS ] ]; +ANALYZE {TABLE [ ( [, ...]) ] | DATABASE } + [ [ WITH SYNC ] [ WITH SAMPLE {PERCENT | ROWS} ] ]; ``` -- table_name: 指定的目标表。可以是  `db_name.table_name`  形式。 -- column_name: 指定的目标列。必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 -- sync:同步收集统计信息。收集完后返回。若不指定则异步执行并返回 JOB ID。 -- sample percent | rows:抽样收集统计信息。可以指定抽样比例或者抽样行数。 +## 必选参数 + +**1. ``** + +> 指定的目标表。该参数与``参数必须且只能指定其中之一。 + +**2. ``** + +> 指定的目标数据库。该参数与``参数必须且只能指定其中之一。 + +## 可选参数 + +**1. ``** + +> 指定表的目标列。必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 + +**2. `WITH SYNC`** -## 示例 +> 指定同步执行该ANALYZE语句。不指定时默认后台异步执行。 -对一张表按照 10% 的比例采样收集统计数据: +**3. `WITH SAMPLE {PERCENT | ROWS} `** + +> 指定使用抽样方式收集。当不指定时,默认为全量收集。 为抽样参数,在PERCENT采样时指定抽样百分比,ROWS采样时指定抽样行数。 + +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| Job_Id | 收集作业的唯一ID | +| Catalog_Name | Catalog名 | +| DB_Name | 数据库名 | +| Columns | 收集的列列表 | + +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 ANALYZE 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 注意事项 +- 如果指定 WITH SYNC,则语句没有返回值。当语句执行结束后,收集作业就已经完成 +- 不指定 WITH SYNC 时,语句在返回job id等信息后就结束了,收集作业在后台执行,可以通过show analyze语句查看执行状态 + + +## 举例 + +1. 对一张表按照 10% 的比例采样收集统计数据: ```sql ANALYZE TABLE lineitem WITH SAMPLE PERCENT 10; ``` -对一张表按采样 10 万行收集统计数据 +2. 对一张表按采样 10 万行收集统计数据 ```sql ANALYZE TABLE lineitem WITH SAMPLE ROWS 100000; ``` -## 关键词 - -ANALYZE diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md index be0c2af6f7c3d..7a26cfe97c3c4 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-ANALYZE.md @@ -24,83 +24,95 @@ specific language governing permissions and limitations under the License. --> - ## 描述 -通过 `SHOW ANALYZE` 来查看统计信息收集作业的信息。 +该语句用来查看统计信息收集作业的状态。 -语法如下: +## 语法 ```SQL -SHOW [AUTO] ANALYZE < table_name | job_id > - [ WHERE [ STATE = [ "PENDING" | "RUNNING" | "FINISHED" | "FAILED" ] ] ]; +SHOW [AUTO] ANALYZE [ < table_name > | < job_id > ] + [ WHERE STATE = { "PENDING" | "RUNNING" | "FINISHED" | "FAILED" } ]; ``` -- AUTO:仅仅展示自动收集历史作业信息。需要注意的是默认只保存过去 20000 个执行完毕的自动收集作业的状态。 -- table_name:表名,指定后可查看该表对应的统计作业信息。可以是  `db_name.table_name`  形式。不指定时返回所有统计作业信息。 -- job_id:统计信息作业 ID,执行 `ANALYZE` 异步收集时得到。不指定 id 时此命令返回所有统计作业信息。 +## 必选参数 -输出: +**无** -| 列名 | 说明 | -| :--------------------- | :----------- | -| `job_id` | 统计作业 ID | -| `catalog_name` | catalog 名称 | -| `db_name` | 数据库名称 | -| `tbl_name` | 表名称 | -| `col_name` | 列名称列表 | -| `job_type` | 作业类型 | -| `analysis_type` | 统计类型 | -| `message` | 作业信息 | -| `last_exec_time_in_ms` | 上次执行时间 | -| `state` | 作业状态 | -| `schedule_type` | 调度方式 | +## 可选参数 -下面是一个例子: +**1. `AUTO `** -```sql -mysql> show analyze 245073\G; -*************************** 1. row *************************** - job_id: 245073 - catalog_name: internal - db_name: default_cluster:tpch - tbl_name: lineitem - col_name: [l_returnflag,l_receiptdate,l_tax,l_shipmode,l_suppkey,l_shipdate,l_commitdate,l_partkey,l_orderkey,l_quantity,l_linestatus,l_comment,l_extendedprice,l_linenumber,l_discount,l_shipinstruct] - job_type: MANUAL - analysis_type: FUNDAMENTALS - message: -last_exec_time_in_ms: 2023-11-07 11:00:52 - state: FINISHED - progress: 16 Finished | 0 Failed | 0 In Progress | 16 Total - schedule_type: ONCE -``` +> 展示自动作业信息。如不指定,默认显示手动作业信息。 + +**2. `< table_name > `** + +> 表名。指定后可查看该表对应的作业信息。不指定时默认返回所有表的作业信息。 + +**3. `< job_id > `** + +> 统计信息作业 ID,执行 `ANALYZE` 异步收集时得到。不指定 id 时此命令返回所有作业信息。 -
+## 返回值 -每个收集作业中可以包含一到多个任务,每个任务对应一列的收集。用户可通过如下命令查看具体每列的统计信息收集完成情况。 +| 列名 | 说明 | +| -- |--------------| +| job_id | 收集作业的唯一ID | +| catalog_name | Catalog名 | +| db_name | 数据库名 | +| tbl_name | 表名 | +| col_name | 收集的列列表 | +| job_type | 作业类型 | +| analysis_type | 分析类型 | +| message | 错误信息 | +| last_exec_time_in_ms | 上次收集完成时间 | +| state | 作业状态 | +| progress | 作业进度 | +| schedule_type | 调度类型 | +| start_time | 作业开始时间 | +| end_time | 作业结束时间 | +| priority | 作业优先级 | +| enable_partition | 是否开启分区收集 | -语法: +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 举例 + +1. 通过表名展示作业 ```sql -SHOW ANALYZE TASK STATUS [job_id] +SHOW ANALYZE test1 WHERE STATE="FINISHED"; ``` -下面是一个例子: - +```text ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1737454119144 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-01-21 18:10:11 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-01-21 18:10:10 | 2025-01-21 18:10:11 | MANUAL | false | +| 1738725887879 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 11:26:15 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 11:26:15 | 2025-02-05 11:26:15 | MANUAL | false | +| 1738725887890 | internal | test | test1 | [test1:name,test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:09 | FINISHED | 2 Finished | 0 Failed | 0 In Progress | 2 Total | ONCE | 2025-02-05 12:17:08 | 2025-02-05 12:17:09 | MANUAL | false | +| 1738725887895 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:24 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:23 | 2025-02-05 12:17:24 | MANUAL | false | +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+-----------------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ ``` -mysql> show analyze task status 20038 ; -+---------+----------+---------+----------------------+----------+ -| task_id | col_name | message | last_exec_time_in_ms | state | -+---------+----------+---------+----------------------+----------+ -| 20039 | col4 | | 2023-06-01 17:22:15 | FINISHED | -| 20040 | col2 | | 2023-06-01 17:22:15 | FINISHED | -| 20041 | col3 | | 2023-06-01 17:22:15 | FINISHED | -| 20042 | col1 | | 2023-06-01 17:22:15 | FINISHED | -+---------+----------+---------+----------------------+----------+ +2. 通过作业 ID 展示作业 +```sql +show analyze 1738725887903; ``` -## 关键词 +```text ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| job_id | catalog_name | db_name | tbl_name | col_name | job_type | analysis_type | message | last_exec_time_in_ms | state | progress | schedule_type | start_time | end_time | priority | enable_partition | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +| 1738725887903 | internal | test | test1 | [test1:id] | MANUAL | FUNDAMENTALS | | 2025-02-05 12:17:42 | FINISHED | 1 Finished | 0 Failed | 0 In Progress | 1 Total | ONCE | 2025-02-05 12:17:41 | 2025-02-05 12:17:42 | MANUAL | false | ++---------------+--------------+---------+----------+------------+----------+---------------+---------+----------------------+----------+-------------------------------------------------------+---------------+---------------------+---------------------+----------+------------------+ +``` -SHOW, ANALYZE diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-STATS.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-STATS.md index 604cd375aec3d..1eef0c05d9320 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-STATS.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-STATS.md @@ -1,6 +1,6 @@ --- { - "title": "SHOW STATS", + "title": "SHOW COLUMN STATS", "language": "zh-CN" } --- @@ -26,41 +26,88 @@ under the License. ## 描述 -通过 `SHOW COLUMN STATS` 来查看列的各项统计数据。 +该语句用来查看表的列统计信息。 -语法如下: +## 语法 ```SQL -SHOW COLUMN [cached] STATS table_name [ (column_name [, ...]) ]; +SHOW COLUMN [CACHED] STATS < table_name > [ ( [, ...]) ]; ``` -其中: +## 必选参数 -- cached: 展示当前 FE 内存缓存中的统计信息。 -- table_name: 收集统计信息的目标表。可以是  `db_name.table_name`  形式。 -- column_name: 指定的目标列,必须是  `table_name`  中存在的列,多个列名称用逗号分隔。 +**1. ``** -下面是一个例子: +> 需要展示列统计信息的表名。 + +## 可选参数 + +**1. `CACHED `** + +> 显示FE缓存中的统计信息。不指定的时候默认显示统计信息表中持久化的信息。 + +**2. ``** + +> 指定需要显示的列名。列名在表中必须存在,多个列名之间用逗号分隔。如果不指定,默认显示所有列的信息。 + +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| column_name | 列名 | +| index_name | 列所属的索引名 | +| count | 列的行数 | +| ndv | 列的基数 | +| num_null | 列的空值数 | +| data_size | 列的总数据量 | +| avg_size_byte | 列的平均字节数 | +| min | 列的最小值 | +| max | 列的最大值 | +| method | 收集方式 | +| type | 收集类型 | +| trigger | 触发方式 | +| query_times | 信息被查询次数 | +| updated_time | 信息更新时间 | +| update_rows | 上次收集时数据更新行数 | +| last_analyze_row_count | 上次收集时表的总行数 | +| last_analyze_version | 上次收集时表的版本值 | + +## 权限控制 + +执行此 SQL 命令的用户必须至少具有以下权限: + +| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | + +## 举例 + +1. 展示表test1所有列的统计信息 ```sql -mysql> show column stats lineitem(l_tax)\G; -*************************** 1. row *************************** - column_name: l_tax - count: 6001215.0 - ndv: 9.0 - num_null: 0.0 - data_size: 4.800972E7 -avg_size_byte: 8.0 - min: 0.00 - max: 0.08 - method: FULL - type: FUNDAMENTALS - trigger: MANUAL - query_times: 0 - updated_time: 2023-11-07 11:00:46 +SHOW COLUMN STATS test1; +``` +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ ``` -## 关键词 +2. 展示表test1所有列在当前FE缓存中的统计信息 -SHOW, COLUMN, STATS +```sql +SHOW COLUMN CACHED STATS test1; +``` + +```text ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| column_name | index_name | count | ndv | num_null | data_size | avg_size_byte | min | max | method | type | trigger | query_times | updated_time | update_rows | last_analyze_row_count | last_analyze_version | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +| name | test1 | 87775.0 | 48824.0 | 0.0 | 351100.0 | 4.0 | '0001' | 'ffff' | FULL | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:08 | 0 | 100000 | 3 | +| id | test1 | 100000.0 | 8965.0 | 0.0 | 351400.0 | 3.514 | 1000 | 9999 | SAMPLE | FUNDAMENTALS | MANUAL | 0 | 2025-02-05 12:17:41 | 0 | 100000 | 3 | ++-------------+------------+----------+---------+----------+-----------+---------------+--------+--------+--------+--------------+---------+-------------+---------------------+-------------+------------------------+----------------------+ +``` diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md index 22779d9da485c..5ac847d96c71a 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md +++ b/i18n/zh-CN/docusaurus-plugin-content-docs/version-3.0/sql-manual/sql-statements/statistics/SHOW-TABLE-STATS.md @@ -24,49 +24,61 @@ specific language governing permissions and limitations under the License. --> +## 描述 -### 描述 +该语句用来查看表的统计信息收集概况。 -通过 `SHOW TABLE STATS` 查看表的统计信息收集概况。 - -语法如下: +## 语法 ```SQL -SHOW TABLE STATS table_name; +SHOW TABLE STATS < table_name >; ``` -其中: +## 必选参数 -- table_name: 目标表表名。可以是  `db_name.table_name`  形式。 +**1. ` `** -输出: +> 目标表名 -| 列名 | 说明 | -| :------------------ | :--------------------- | -|`updated_rows`|自上次 ANALYZE 以来该表的更新行数| -|`query_times`|保留列,后续版本用以记录该表查询次数| -|`row_count`| 行数(不反映命令执行时的准确行数)| -|`updated_time`| 上次更新时间| -|`columns`| 收集过统计信息的列| -|`trigger`|触发方式| +## 可选参数 -下面是一个例子: +**无** -```sql -mysql> show table stats lineitem \G; -*************************** 1. row *************************** -updated_rows: 0 - query_times: 0 - row_count: 6001215 -updated_time: 2023-11-07 - columns: [l_returnflag, l_receiptdate, l_tax, l_shipmode, l_suppkey, l_shipdate, l_commitdate, l_partkey, l_orderkey, l_quantity, l_linestatus, l_comment, l_extendedprice, l_linenumber, l_discount, l_shipinstruct] - trigger: MANUAL -``` +## 返回值 + +| 列名 | 说明 | +| -- |--------------| +| updated_rows | 表当前更新行数 | +| query_times | 表被查询次数 | +| row_count | 表当前的总行数 | +| updated_time | 表上次更新时间 | +| columns | 收集过的列列表 | +| trigger | 收集触发方式 | +| new_partition | 是否有新分区首次导入数据 | +| user_inject | 用户是否手动注入了统计信息 | +| enable_auto_analyze | 这张表是否参与统计信息自动收集 | +| last_analyze_time | 上次收集时间 | + +## 权限控制 -
+执行此 SQL 命令的用户必须至少具有以下权限: -
+| 权限(Privilege) | 对象(Object) | 说明(Notes) | +|:--------------| :------------- |:------------------------------------------------| +| SELECT_PRIV | 表(Table) | 当执行 SHOW 时,需要拥有被查询的表的 SELECT_PRIV 权限 | -### 关键词 +## 举例 -SHOW, TABLE, STATS +1. 展示表test1的统计信息概况 + +```sql +SHOW TABLE STATS test1; +``` + +```text ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| updated_rows | query_times | row_count | updated_time | columns | trigger | new_partition | user_inject | enable_auto_analyze | last_analyze_time | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +| 0 | 0 | 100000 | 2025-01-17 16:46:31 | [test1:name, test1:id] | MANUAL | false | false | true | 2025-02-05 12:17:41 | ++--------------+-------------+-----------+---------------------+------------------------+---------+---------------+-------------+---------------------+---------------------+ +```