Get a free observability report to evaluate the potential savingsContact us →
槽位使用3 分钟阅读

按秒统计 BigQuery 槽位使用情况

秒级槽位数据是 BigQuery 中可用的最精细粒度。用于对查询排队或缓慢的特定时间窗口进行详细调试。

为什么重要

当您大致知道性能问题何时发生时,秒级数据可让您精确重建发生的事情——使用了多少槽位、需求上升有多快以及争用持续了多长时间。这是在较粗粒度识别问题窗口后运行的查询。

工作原理

在 SECOND 粒度上从 JOBS_TIMELINE 汇总 period_slot_ms(除以 1,000ms)。由于数据量,保持 lookback_days 小(建议 1 天)。

SQL 查询

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

SQL
-- Per-second slot consumption for detailed burst analysis

DECLARE lookback_days INT64 DEFAULT 1; -- keep small for second-level data

WITH second_slots AS (
  SELECT
    period_start AS second,
    ROUND(SUM(period_slot_ms) / 1000, 2) AS avg_slots
  FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE
  WHERE period_start >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
    AND statement_type != 'SCRIPT'
  GROUP BY second
),
calendar AS (
  SELECT ts AS second FROM UNNEST(GENERATE_TIMESTAMP_ARRAY(
    TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY), SECOND),
    TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(), SECOND),
    INTERVAL 1 SECOND)) AS ts
)
SELECT
  c.second,
  IFNULL(s.avg_slots, 0) AS avg_slots
FROM calendar c
LEFT JOIN second_slots s ON c.second = s.second
ORDER BY c.second
将 your-project 和 region-us 替换为您的 GCP 项目和数据集区域。

查询说明

在秒级,查询将 period_slot_ms 除以 1,000 以获得每秒槽位数。生成的时间序列填充每一秒。警告:1 天 = 86,400 行,7 天 = 604,800 行——保持回溯窗口小。

关键洞察

  • lightbulb

    秒级数据揭示槽位需求是逐渐上升还是瞬间激增。

  • lightbulb

    如果槽位使用快速振荡(一秒高,下一秒为零),您有许多短暂的查询。

  • lightbulb

    超过 60 秒的持续高槽位使用表明单个繁重查询或并发批次。

  • lightbulb

    将此数据与并发查询数据结合使用,以将槽位需求与查询计数相关联。

最佳实践

  1. 1

    仅将秒级粒度用于特定事件的有针对性调试——而非持续监控。

  2. 2

    与并发查询数据结合,了解高槽位使用是来自少数繁重查询还是许多轻量查询。

  3. 3

    导出到可视化工具以创建槽位使用热图。

  4. 4

    将 lookback_days 设置为 1,以避免处理过多数据。

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

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

相关指南