Requêtes BigQuery concurrentes par minute
Cette requête compte le nombre de requêtes distinctes s'exécutant pendant chaque minute, révélant des modèles de concurrence qui affectent les performances. Une concurrence élevée peut entraîner la mise en file d'attente des requêtes sous la tarification à la demande et Editions.
Pourquoi c'est important
BigQuery a des limites de concurrence qui varient selon le modèle de facturation — 100 requêtes concurrentes pour la tarification à la demande, ou limitées par la capacité de slots de réservation pour Editions. Quand vous dépassez ces limites, les requêtes se mettent en file d'attente et attendent. Comprendre vos modèles de concurrence vous aide à éviter ces goulots d'étranglement et à planifier les charges efficacement.
Comment ça fonctionne
La requête lit depuis INFORMATION_SCHEMA.JOBS_TIMELINE_BY_PROJECT, qui enregistre l'activité des jobs par seconde. Elle déduplique par job_id, tronque les timestamps à la minute et compte les jobs distincts par période de minute.
Requête SQL
Fill in your details to get a ready-to-run query:
-- Count concurrent queries per minute to detect bottlenecks
DECLARE lookback_days INT64 DEFAULT 7;
WITH timeline AS (
SELECT
TIMESTAMP_TRUNC(period_start, MINUTE) AS minute,
job_id,
ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY job_creation_time DESC) AS rn
FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_TIMELINE_BY_PROJECT
WHERE job_creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
AND job_type = 'QUERY'
AND parent_job_id IS NULL
)
SELECT
minute,
COUNT(job_id) AS concurrent_queries
FROM timeline
WHERE rn = 1
GROUP BY minute
ORDER BY minuteExplication de la requête
JOBS_TIMELINE_BY_PROJECT enregistre une ligne par job par seconde d'exécution. La déduplication ROW_NUMBER() assure que chaque job est compté une fois. parent_job_id IS NULL filtre les jobs enfants de scripts. Le COUNT par minute tronquée donne le nombre de jobs concurrents.
Points clés
Les minutes avec >50 requêtes concurrentes risquent d'atteindre les limites de concurrence à la demande (100 par projet).
Une concurrence élevée constante à des moments spécifiques indique un chevauchement de jobs planifiés — décalez les heures de démarrage.
Les pics de concurrence suivis de chutes peuvent indiquer que certaines requêtes sont mises en file d'attente puis libérées par rafales.
Une faible concurrence avec une utilisation élevée de slots signifie quelques requêtes très lourdes — stratégie d'optimisation différente de nombreuses requêtes légères.
Meilleures pratiques
- 1
Décalez les heures de démarrage des pipelines de seulement 1-2 minutes pour réduire la concurrence en pointe.
- 2
Utilisez les paramètres de priorité des jobs BigQuery (INTERACTIVE vs BATCH) pour éviter que les requêtes ad hoc soient mises en file d'attente derrière les jobs par lots.
- 3
Surveillez les requêtes en état PENDING en utilisant la vue queued_queries.
- 4
Envisagez des réservations Editions avec des max_slots adéquats pour gérer votre concurrence en pointe.
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
Utilisation des slots BigQuery par minute
Obtenez des données de consommation de slots BigQuery à la minute. Essentiel pour déboguer les problèmes de performance et comprendre les pics de demande de slots.
Lire le guideUtilisation des slots BigQuery par heure
Surveillez la consommation horaire de slots BigQuery pour identifier les fenêtres d'utilisation de pointe et optimiser votre planification de réservations.
Lire le guideTop requêtes BigQuery par complexité
Trouvez les requêtes BigQuery les plus intensives en calcul classées par utilisation des slots. Identifiez les requêtes consommant des ressources computationnelles disproportionnées.
Lire le guideTop requêtes BigQuery par durée
Trouvez les requêtes BigQuery les plus longues. Identifiez les requêtes lentes qui bloquent les ressources et impactent l'expérience utilisateur.
Lire le guide