适用于:
Databricks SQL
Databricks Runtime 18.3 及更高版本
以 JSON 文档的形式返回表的优化器统计信息,包括表级统计信息和每列统计信息(可选)。
Databricks 建议 SHOW STATISTICS 以编程方式读取优化器统计信息。 它仅返回统计信息,而不返回 EXTENDED 中包含的DESCRIBE TABLE架构、存储、属性、分区和其他元数据...AS JSON。 使用 ANALYZE TABLE ...计算统计信息 (或 预测优化)收集此命令报告的统计信息。
所需的权限
SHOW STATISTICS若要在 Unity 目录表上运行,需要:
-
USE CATALOG父目录。 -
USE SCHEMA在父架构上。 -
SELECT表或表的所有权。
Syntax
SHOW STATISTICS [ { FROM | IN } ] table_name
[ FOR COLUMNS column_name [, ...] | FOR ALL COLUMNS ]
AS JSON
关键字FROMIN是可选的,可互换。
Parameters
-
标识要为其报告统计信息的表。 名称不得包含 时态规范或选项规范。
如果找不到该表,Azure Databricks将引发TABLE_OR_VIEW_NOT_FOUND错误。
不支持视图(临时视图或永久性视图)。 对
SHOW STATISTICS视图调用会引发 EXPECT_TABLE_NOT_VIEW.NO_ALTERNATIVE。 用于DESCRIBE EXTENDED视图元数据。 FOR COLUMNScolumn_name [, ...]
为每个命名列添加一个条目
statistics.column_statistics。如果表中不存在任何命名列,该命令将引发 COLUMN_NOT_FOUND。
FOR ALL COLUMNS
为表的每个原子类型顶级列添加一个条目
statistics.column_statistics。排除数据类型为 STRUCT、 ARRAY 或 MAP 的列,因为优化器不会收集有关复杂类型的统计信息。 不枚举嵌套字段。
AS JSON
必填。 结果以单个 JSON 格式
STRING返回。
JSON 格式的输出
返回的 JSON 文档使用以下架构:
{
"table_name": "<table_name>",
"catalog_name": "<catalog_name>",
"namespace": ["<schema_name>"],
"schema_name": "<schema_name>",
"statistics": {
"size_in_bytes": <bytes>,
"num_rows": <count>,
"collection_source": "<collection_source>",
"created_at": "<created_at_timestamp>",
"column_statistics": {
"<column_name>": {
"min": "<min_value>",
"max": "<max_value>",
"distinct_count": <count>,
"num_nulls": <count>,
"avg_len": <bytes>,
"max_len": <bytes>,
"has_histogram": <boolean>,
"has_mcv": <boolean>,
"has_kll_sketch": <boolean>
}
}
}
}
statistics.size_in_bytes
表数据的总大小(以字节为单位),如优化器所知。 当不存在表级统计信息时省略。
statistics.num_rows
行计数,如优化器所知。
null如果未收集。statistics.collection_source
如何生成表级统计信息。 下列其中一项:
-
手动分析 - 收集者
ANALYZE TABLE ... COMPUTE STATISTICS。 - 自动统计信息 - 在写入过程中自动收集。
- 预测分析 - 由 预测优化收集。
- 未知 - 由无法识别的源收集。
-
null— 没有可用的表级统计信息。
-
手动分析 - 收集者
statistics.created_at
收集表级统计信息时,作为 ISO 8601 UTC 时间戳(例如)。
2026-05-29T08:14:24.845Znull如果未收集。statistics.column_statistics
仅当或
FOR ALL COLUMNS指定时才FOR COLUMNS包含。 将每个请求的列映射到其每列统计信息。以下字段始终存在,
null未收集时:- min、 max — 最小值和最大值,呈现为 JSON 字符串。
-
distinct_count - 非重复值数(
NDV)。 -
num_nulls - 值数
NULL。 - avg_len、 max_len - 平均值和最大值长度(以字节为单位)。
-
has_histogram -
true如果列可以使用等高直方图。
仅当启用相应的草图集合并且省略以下字段时,才会显示以下字段:
-
has_mcv —
true如果列提供了最常见的值列表。 -
has_kll_sketch -
true如果 KLL 草图可用于列。
示例
-- Set up a table and collect column statistics.
> CREATE TABLE customer(cust_id INT, name STRING, state STRING) USING parquet;
> INSERT INTO customer VALUES (100, 'Mike', 'AR'), (200, 'Jane', 'CA');
> ANALYZE TABLE customer COMPUTE STATISTICS FOR ALL COLUMNS;
-- Table-level statistics only.
> SHOW STATISTICS FROM customer AS JSON;
{"table_name":"customer","catalog_name":"spark_catalog",
"namespace":["default"],"schema_name":"default",
"statistics":{"size_in_bytes":864,"num_rows":2,
"collection_source":"Manual Analyze",
"created_at":"2026-05-29T08:14:24.845Z"}}
-- Per-column statistics for a list of columns.
> SHOW STATISTICS FROM customer FOR COLUMNS cust_id, name AS JSON;
{"table_name":"customer","catalog_name":"spark_catalog",
"namespace":["default"],"schema_name":"default",
"statistics":{"size_in_bytes":864,"num_rows":2,
"collection_source":"Manual Analyze",
"created_at":"2026-05-29T08:14:24.845Z",
"column_statistics":{
"cust_id":{"min":"100","max":"200","distinct_count":2,"num_nulls":0,
"avg_len":4,"max_len":4,"has_histogram":false,"has_mcv":false},
"name": {"min":"Jane","max":"Mike","distinct_count":2,"num_nulls":0,
"avg_len":4,"max_len":4,"has_histogram":false,"has_mcv":false}}}}
-- All atomic top-level columns. STRUCT, ARRAY, and MAP columns are skipped.
> SHOW STATISTICS FROM customer FOR ALL COLUMNS AS JSON;