You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Explorer(ADX)中获取所有表大小并存储至表中?

Azure Data Explorer(ADX)表大小查询及数据写入错误解决

一、获取所有表大小的高效查询

无需逐个查询单表extents,ADX提供了更直接的方式获取全量表存储大小:

方法1:使用内置统计命令

通过.show tables stats命令直接获取每个表的存储统计信息:

.show tables stats
| project DatabaseName, TableName, TotalDataSize, SizeinGB = format_bytes(TotalDataSize, 2)

方法2:通过extents聚合查询所有表

若需要更细粒度的extents数据,可使用table_extents()函数(支持指定单表或查询所有表):

// 查询当前数据库所有表的大小
table_extents()
| summarize TotalSize = sum(ExtentSize) by DatabaseName, TableName
| extend SizeinGB = format_bytes(TotalSize, 2)
| project DatabaseName, TableName, SizeinGB

二、解决.set-or-append语法错误

你遇到的错误是因为Kusto不允许在同一查询批次中混合使用.show控制命令和.set-or-append控制命令,$command_results仅能在单个控制命令的后续步骤中使用,无法跨控制命令传递结果。

正确写法

直接用table_extents()函数替代.show table extents,将计算逻辑整合到.set-or-append语句中:

// 写入单表大小到自定义表
.set-or-append adx_tables_space <|
table_extents("dev_adls_la_parsed")
| summarize num=sum(ExtentSize) by DatabaseName, TableName
| extend SizeinGB = format_bytes(num, 2)
| project DatabaseName, TableName, SizeinGB

如果需要写入当前数据库所有表的大小,去掉table_extents()的表名参数即可:

.set-or-append adx_tables_space <|
table_extents()
| summarize num=sum(ExtentSize) by DatabaseName, TableName
| extend SizeinGB = format_bytes(num, 2)
| project DatabaseName, TableName, SizeinGB

内容的提问来源于stack exchange,提问作者Brahmaiah Takkellapati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:31:00