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

在Snowflake中如何查询所有数据库及其对应存储占用大小?

Snowflake数据库存储大小查询实现方案

你可以通过对DATABASE_STORAGE_USAGE_HISTORY函数返回的结果做字段筛选、单位转换和去重处理,直接得到你需要的输出格式:

最终查询SQL

SELECT
  DATABASE_NAME AS "DatabaseName",
  -- 字节转换为GB,保留1位小数
  ROUND(AVERAGE_DATABASE_BYTES / 1073741824, 1) AS "Size(GB)"
FROM TABLE(INFORMATION_SCHEMA.DATABASE_STORAGE_USAGE_HISTORY(
  -- 取最近1天的统计数据即可获得最新存储值,也可自行调整时间范围
  DATEADD('days', -1, CURRENT_DATE()),
  CURRENT_DATE()
))
-- 过滤已删除的数据库记录
WHERE DELETED IS NULL
-- 每个数据库仅保留最新的一条统计记录,避免重复输出
QUALIFY ROW_NUMBER() OVER (PARTITION BY DATABASE_NAME ORDER BY USAGE_DATE DESC) = 1
-- 按存储大小倒序排列,也可调整为按数据库名称排序
ORDER BY "Size(GB)" DESC;

可选调整说明

  • 如果你需要统计数据库关联的阶段存储和故障保护存储总占用,可以把转换单位的部分替换为:
    ROUND((AVERAGE_DATABASE_BYTES + AVERAGE_STAGE_BYTES + AVERAGE_FAILSAFE_BYTES) / 1073741824, 1) AS "Size(GB)"
    
  • 如果你需要计算指定时间范围内的平均存储大小,可以删除QUALIFY语句,添加GROUP BY DATABASE_NAME,并将AVERAGE_DATABASE_BYTES替换为AVG(AVERAGE_DATABASE_BYTES)即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:42:05