Consultas concurrentes de BigQuery por minuto
Esta consulta cuenta el número de consultas distintas ejecutándose durante cada minuto, revelando patrones de concurrencia que afectan el rendimiento. La alta concurrencia puede llevar al encolamiento de consultas tanto bajo la tarificación bajo demanda como con Editions.
Por qué importa
BigQuery tiene límites de concurrencia que varían según el modelo de facturación — 100 consultas concurrentes para bajo demanda, o limitadas por la capacidad de slots de reservación para Editions. Cuando supera estos límites, las consultas se encolan y esperan. Entender sus patrones de concurrencia le ayuda a evitar estos cuellos de botella y programar cargas de trabajo eficientemente.
Cómo funciona
La consulta lee desde INFORMATION_SCHEMA.JOBS_TIMELINE_BY_PROJECT, que registra actividad de trabajos por segundo. Deduplica por job_id, trunca timestamps a minutos y cuenta trabajos distintos por período de minuto.
Consulta 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 minuteExplicación de la consulta
JOBS_TIMELINE_BY_PROJECT registra una fila por trabajo por segundo de ejecución. La deduplicación ROW_NUMBER() asegura que cada trabajo se cuente una vez. parent_job_id IS NULL filtra los trabajos hijo de scripts. El COUNT por minuto truncado da el número de trabajos concurrentes.
Puntos clave
Los minutos con >50 consultas concurrentes arriesgan alcanzar los límites de concurrencia bajo demanda (100 por proyecto).
La alta concurrencia constante en momentos específicos indica superposición de trabajos programados — escalone los tiempos de inicio.
Los picos de concurrencia seguidos de caídas pueden indicar que algunas consultas están siendo encoladas y luego liberadas en ráfagas.
Baja concurrencia con alto uso de slots significa pocas consultas muy pesadas — estrategia de optimización diferente a muchas consultas ligeras.
Mejores prácticas
- 1
Escalone los tiempos de inicio de los pipelines incluso 1-2 minutos para reducir la concurrencia en pico.
- 2
Use la configuración de prioridad de trabajos de BigQuery (INTERACTIVE vs BATCH) para evitar que las consultas ad hoc se encolen detrás de los trabajos por lotes.
- 3
Monitoree las consultas en estado PENDING usando la vista queued_queries.
- 4
Considere reservaciones Editions con max_slots adecuados para manejar su concurrencia pico.
¿Quiere que CloudClerk encuentre estos ahorros automáticamente?
Nuestra plataforma se conecta a su proyecto BigQuery, ejecuta estos análisis automáticamente y entrega recomendaciones de optimización impulsadas por IA — todo con sus datos completamente anonimizados.
Guías relacionadas
Uso de slots de BigQuery por minuto
Obtenga datos de consumo de slots de BigQuery a nivel de minuto. Esencial para depurar problemas de rendimiento y entender la demanda de slots en ráfagas.
Leer guíaUso de slots de BigQuery por hora
Monitoree el consumo horario de slots de BigQuery para identificar ventanas de uso pico y optimizar la programación de sus reservaciones.
Leer guíaTop consultas de BigQuery por complejidad
Encuentre las consultas de BigQuery más intensivas en cómputo clasificadas por uso de slots. Identifique consultas que consumen recursos computacionales desproporcionados.
Leer guíaTop consultas de BigQuery por duración
Encuentre las consultas de BigQuery de mayor duración. Identifique consultas lentas que bloquean recursos e impactan la experiencia del usuario.
Leer guía