Top consultas de BigQuery por complejidad
La complejidad en BigQuery se mide por el consumo de slots — el número promedio de slots que una consulta utiliza durante la ejecución. Esta consulta clasifica todas las consultas por su número aproximado de slots, revelando las operaciones más intensivas en cómputo en su proyecto.
Por qué importa
Las consultas con muchos slots afectan a todos en su proyecto. Bajo la tarificación bajo demanda compiten por su asignación de slots de cuota compartida (típicamente 2,000 slots). Bajo la tarificación Editions consumen directamente su capacidad reservada. Identificar y optimizar consultas complejas mejora el rendimiento para todos los usuarios y reduce costos bajo ambos modelos de facturación.
Cómo funciona
El número aproximado de slots se calcula dividiendo total_slot_ms por el tiempo de ejecución en milisegundos. Una consulta que usa 1,000 slot-milisegundos durante 1 segundo usó aproximadamente 1 slot en promedio. Esta métrica captura el paralelismo y el peso computacional de cada consulta.
Consulta SQL
Fill in your details to get a ready-to-run query:
-- Queries ranked by average slot consumption (most compute-heavy first)
DECLARE lookback_days INT64 DEFAULT 14;
WITH jobs AS (
SELECT
user_email,
query,
project_id,
start_time,
end_time,
total_slot_ms,
COALESCE(total_bytes_billed, 0) AS bytes_billed,
TIMESTAMP_DIFF(end_time, start_time, MILLISECOND) AS duration_ms,
ROW_NUMBER() OVER (PARTITION BY job_id ORDER BY end_time DESC) AS rn
FROM `your-project`.`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE creation_time >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL lookback_days DAY)
AND job_type = 'QUERY' AND state = 'DONE' AND total_slot_ms IS NOT NULL
)
SELECT
user_email,
query,
project_id,
start_time,
end_time,
ROUND(SAFE_DIVIDE(total_slot_ms, duration_ms), 0) AS avg_slots,
ROUND(duration_ms / 1000, 1) AS duration_sec,
ROUND(bytes_billed / POW(1024, 4) * 6.25, 2) AS on_demand_cost_usd
FROM jobs
WHERE rn = 1
...Explicación de la consulta
La fórmula central es SAFE_DIVIDE(total_slot_ms, duration_ms). Si una consulta usó 10,000 slot-milisegundos durante 100 milisegundos, su número aproximado de slots es 100 — lo que significa que usó aproximadamente 100 slots concurrentemente. Números más altos indican más paralelismo y mayor demanda computacional.
Puntos clave
Las consultas con >500 slots se consideran altamente complejas y pueden beneficiarse de la reescritura.
Alto número de slots con pocos bytes facturados sugiere operaciones intensivas en cómputo: JOINs complejos, funciones de ventana o DISTINCT en conjuntos de datos grandes.
Alto número de slots con muchos bytes facturados indica problemas tanto de volumen de datos como de cómputo — los mayores objetivos de optimización.
Compare el número de slots con el tiempo de ejecución: si los slots son altos pero la ejecución rápida, la consulta es eficientemente paralela pero consume muchos recursos.
Mejores prácticas
- 1
Simplifique los JOINs multi-direccionales pre-agregando o usando tablas intermedias.
- 2
Reemplace COUNT(DISTINCT ...) exacto por APPROX_COUNT_DISTINCT() cuando la precisión no es crítica.
- 3
Evite subconsultas correlacionadas — reescríbalas como JOINs o funciones de ventana.
- 4
Use clustering en claves de JOIN para reducir operaciones de shuffle.
¿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
Top consultas de BigQuery por costo
Encuentre las consultas de BigQuery más costosas por costo bajo demanda. Clasifique consultas por total de bytes facturados para identificar los principales impulsores de costos.
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íaTop consultas de BigQuery por frecuencia
Identifique las consultas de BigQuery ejecutadas más frecuentemente. Encuentre consultas repetidas candidatas para caché, vistas materializadas o consolidación.
Leer guíaUso 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ía