Get a free observability report to evaluate the potential savingsContact us →
Utilisation des slots3 min de lecture

Utilisation des slots BigQuery par seconde

Les données de slots au niveau de la seconde sont la granularité la plus fine disponible dans BigQuery. Utilisez cela pour déboguer en détail des fenêtres de temps spécifiques où les requêtes étaient en file d'attente ou lentes.

Pourquoi c'est important

Quand vous savez approximativement quand un problème de performance s'est produit, les données au niveau de la seconde vous permettent de reconstituer exactement ce qui s'est passé — combien de slots étaient utilisés, à quelle vitesse la demande a augmenté et combien de temps la contention a duré. C'est la requête que vous exécutez après avoir identifié une fenêtre problématique à une granularité plus grossière.

Comment ça fonctionne

Agrège period_slot_ms depuis JOBS_TIMELINE à la granularité SECONDE (en divisant par 1 000 ms). En raison du volume de données, gardez lookback_days petit (1 jour est recommandé).

Requête 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
Remplacez your-project et region-us par votre projet GCP et la région de votre dataset.

Explication de la requête

Au niveau de la seconde, la requête divise period_slot_ms par 1 000 pour obtenir les slots par seconde. La série temporelle générée remplit chaque seconde. Avertissement : 1 jour = 86 400 lignes, 7 jours = 604 800 lignes — gardez la fenêtre de rétention petite.

Points clés

  • lightbulb

    Les données au niveau de la seconde révèlent si la demande de slots augmente progressivement ou explose instantanément.

  • lightbulb

    Si l'utilisation des slots oscille rapidement (élevée une seconde, nulle la suivante), vous avez de nombreuses requêtes de courte durée.

  • lightbulb

    Une utilisation élevée soutenue de slots pendant >60 secondes indique une seule requête lourde ou un batch concurrent.

  • lightbulb

    Utilisez ces données avec la requête de requêtes concurrentes pour corréler la demande de slots avec le nombre de requêtes.

Meilleures pratiques

  1. 1

    Utilisez la granularité au niveau de la seconde uniquement pour déboguer des incidents spécifiques ciblés — pas pour la surveillance continue.

  2. 2

    Combinez avec les données de requêtes concurrentes pour comprendre si l'utilisation élevée de slots provient de quelques requêtes lourdes ou de nombreuses légères.

  3. 3

    Exportez vers un outil de visualisation pour créer des cartes de chaleur d'utilisation des slots.

  4. 4

    Définissez lookback_days à 1 pour éviter de traiter des données excessives.

Voulez-vous que CloudClerk trouve ces économies automatiquement ?

Notre plateforme se connecte à votre projet BigQuery, exécute ces analyses automatiquement et fournit des recommandations d'optimisation basées sur l'IA — tout avec vos données entièrement anonymisées.

Guides associés