Get a free observability report to evaluate the potential savingsContact us →
费用分析3 分钟阅读

按费用排名的 BigQuery 热门查询

这是 BigQuery 费用优化中最有价值的查询。它返回按按需费用排名的每次查询执行,向您展示项目中哪些 SQL 语句消耗最多资源。

为什么重要

在大多数 BigQuery 项目中,帕累托原则适用:20% 的查询占 80% 的费用。找到并优化这些顶级查询可以提供最高的 ROI。没有这种可见性,团队就会在几乎没有影响的查询上浪费时间。

工作原理

查询从 INFORMATION_SCHEMA.JOBS_BY_PROJECT 读取作业元数据,按 job_id 去重,并按按需费用降序排序。费用根据 $6.25/TiB 的 total_bytes_billed 估算。还计算每次查询的估算槽位使用情况。

SQL 查询

Fill in your details to get a ready-to-run query:

SQL
-- Most expensive queries ranked by on-demand cost

DECLARE lookback_days INT64 DEFAULT 14;

WITH jobs AS (
  SELECT
    user_email,
    query,
    job_id,
    project_id,
    start_time,
    end_time,
    COALESCE(total_bytes_billed, 0) AS bytes_billed,
    total_slot_ms,
    ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY end_time DESC) AS rn
  FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
  WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND job_type = 'QUERY' AND state = 'DONE' AND total_slot_ms IS NOT NULL
)
SELECT
  user_email,
  query,
  project_id,
  start_time,
  end_time,
  ROUND(bytes_billed / POW(1024, 4), 4) AS tib_scanned,
  ROUND(bytes_billed / POW(1024, 4) * 6.25, 2) AS on_demand_cost_usd,
  ROUND(SAFE_DIVIDE(total_slot_ms,
    TIMESTAMP_DIFF(end_time, start_time, MILLISECOND)), 0) AS avg_slots
FROM jobs
...
将 your-project 和 region-us 替换为您的 GCP 项目和数据集区域。

查询说明

INFORMATION_SCHEMA.JOBS_BY_PROJECT 过滤到回溯窗口内已完成的查询作业。ROW_NUMBER() 在 job_id 上去重。按需费用计算为 total_bytes_billed / 1024^4 * $6.25。估算槽位数显示计算密集度:total_slot_ms / execution_time_ms。

关键洞察

  • lightbulb

    前 10 个最昂贵的查询通常占项目总费用的 50-80%。

  • lightbulb

    在顶部结果中多次出现的查询是物化或缓存的候选者。

  • lightbulb

    费用高但槽位少的查询扫描了太多数据——添加分区过滤器或选择更少的列。

  • lightbulb

    费用高且槽位多的查询受计算限制——简化 JOIN、减少 DISTINCT 操作或使用近似函数。

最佳实践

  1. 1

    每周审查前 10 个查询,并为每个查询创建优化工单。

  2. 2

    在时间分区表上添加分区过滤器以消除全表扫描。

  3. 3

    用明确的列列表替换 SELECT * 以减少扫描的字节数。

  4. 4

    使用 BigQuery 的查询计划说明来识别处理最多数据的阶段。

想让 CloudClerk 自动找到这些节省吗?

我们的平台连接到您的 BigQuery 项目,自动运行这些分析,并提供 AI 驱动的优化建议——所有数据完全匿名。

相关指南