你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

估计表大小

适用于:✅Microsoft FabricAzure 数据资源管理器

了解表的大小有助于高效资源管理和优化查询性能。 在本文中,你将了解不同的方法来估算表大小以及如何有效地使用它们。

引入数据的原始大小

使用 .show 表详细信息 来估计表的原始数据大小。 有关示例,请参阅 使用 .show 表详细信息

此命令根据假设数据以 CSV 格式传输,提供对引入表中数据的未压缩大小估算。 估算基于数值的近似长度,例如整数、长、日期/时间和 guid,考虑其字符串表示形式。

示例用例: 跟踪传入数据的大小,以做出有关容量规划的明智决策。

以访问字节为单位的表大小

使用 estimate_data_size() 以及 sum() 聚合函数根据数据类型及其各自的字节大小估算表大小。 有关示例,请参阅 使用 estimate_data_size()

此方法通过考虑数值的字节大小而不将其格式设置为字符串来提供更精确的估计。 例如,整数值需要 4 个字节,而长值和日期/时间值需要 8 个字节。 使用此方法可以准确估计内存中适合的数据大小。

示例用例: 确定要扫描的字节数的查询成本。

多个表的组合大小

可以使用 union 运算符以及 estimate_data_size()sum() 函数来估算多个表的总大小(以访问字节为单位)。 有关示例,请参阅 将联合与 estimate_data_size()配合使用。

示例用例: 评估将多个表中的数据合并到单个数据集中的内存要求。

注意

此方法可能会夸大由于空列而估计的数据大小,因为 union 合并指定表中的所有列,estimate_data_size() 在计算数据大小时考虑空列。

例子

使用 .show 表详细信息

以下查询估计 StormEvents 表的原始数据大小。

.show table StormEvents details
| project TotalOriginalSize

输出

TotalOriginalSize
60192011

提示

若要将字节结果格式化为 MBGB或其他单位,请使用 format_bytes()

使用 estimate_data_size()

以下查询估计 StormEvents 表的原始数据大小(以字节为单位)。

StormEvents
| extend sizeEstimateOfColumn = estimate_data_size(*)
| summarize totalSize=sum(sizeEstimateOfColumn)

输出

totalSize
58608932

注意

即使通过同一个表完成计算,输出也会更小。 这是因为此方法通过考虑数值的字节大小而不将它们格式化为字符串来提供更精确的估计。

将联合与 estimate_data_size()

以下查询估计 Samples 数据库中所有表的数据大小。

union withsource=_TableName *
| extend sizeEstimateOfColumn = estimate_data_size(*)
| summarize totalSize=sum(sizeEstimateOfColumn)
| extend sizeGB = format_bytes(totalSize,2,"GB")
totalSize sizeGB
1761782453926 1640.79 GB