Get a free observability report to evaluate the potential savingsContact us →
Concurrencia3 min de lectura

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:

SQL
-- 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 minute
Reemplace your-project y region-us con su proyecto GCP y la región de su dataset.

Explicació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

  • lightbulb

    Los minutos con >50 consultas concurrentes arriesgan alcanzar los límites de concurrencia bajo demanda (100 por proyecto).

  • lightbulb

    La alta concurrencia constante en momentos específicos indica superposición de trabajos programados — escalone los tiempos de inicio.

  • lightbulb

    Los picos de concurrencia seguidos de caídas pueden indicar que algunas consultas están siendo encoladas y luego liberadas en ráfagas.

  • lightbulb

    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. 1

    Escalone los tiempos de inicio de los pipelines incluso 1-2 minutos para reducir la concurrencia en pico.

  2. 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. 3

    Monitoree las consultas en estado PENDING usando la vista queued_queries.

  4. 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