估計數據表大小
了解數據表的大小有助於有效率的資源管理和優化查詢效能。 在本文中,您將瞭解不同的方法來估計數據表大小,以及如何有效地使用它們。
內嵌數據的原始大小
使用 .show 數據表詳細數據 來估計數據表的原始數據大小。 如需範例,請參閱 使用 .show 數據表詳細資料。
此命令會根據假設數據以 CSV 格式傳輸,提供未壓縮的數據擷取到數據表大小的估計。 估計是根據數值的近似長度,例如整數、longs、datetime 和 guid,考慮其字串表示法。
範例使用案例: 追蹤一段時間內送數據的大小,以做出有關容量規劃的明智決策。
存取位元組的數據表大小
使用 estimate_data_size() 以及 sum() 聚合函數,根據數據類型及其各自的位元組大小來估計數據表大小。 如需範例,請參閱 使用 estimate_data_size()。
此方法藉由考慮數值的位元組大小,而不將它們格式化為字元串,來提供更精確的估計。 例如,整數值需要 4 個字節,而 long 和 datetime 值則需要 8 個字節。 藉由使用此方法,您可以準確地估計記憶體中適合的數據大小。
範例使用案例: 根據要掃描的位元組來判斷查詢的成本。
多個數據表的組合大小
您可以使用 等位 運算符以及 estimate_data_size 和 sum() 函式來估計多個數據表在存取位元組方面的合併大小。 如需範例,請參閱 搭配 estimate_data_size()使用等位。
範例使用案例: 評估將多個數據表的數據合併到單一數據集的記憶體需求。
注意
此方法可能會因為空白數據行而擴大估計的數據大小,因為 union
結合指定數據表中的所有數據行,而且 estimate_data_size()
計算數據大小時,會將空白數據行納入考慮。
例子
使用 .show 數據表詳細數據
下列查詢會估計 StormEvents
數據表的原始數據大小。
.show table StormEvents details
| project TotalOriginalSize
輸出
TotalOriginalSize |
---|
60192011 |
提示
若要將位元組結果格式化為 MB
、GB
或其他單位,請使用 format_bytes()。
使用estimate_data_size()
下列查詢會以位元組為單位估計 StormEvents
數據表的原始數據大小。
StormEvents
| extend sizeEstimateOfColumn = estimate_data_size(*)
| summarize totalSize=sum(sizeEstimateOfColumn)
輸出
totalSize |
---|
58608932 |
注意
即使計算是在相同的數據表上完成,輸出也會更小。 這是因為此方法藉由考慮數值的位元元組大小來提供更精確的估計,而不將它們格式化為字串。
使用 union 搭配 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 |