Top consultas de BigQuery por costo
Esta es la consulta más valiosa para la optimización de costos de BigQuery. Devuelve cada ejecución de consulta clasificada por costo bajo demanda, mostrándole exactamente qué instrucciones SQL consumen más recursos en su proyecto.
Por qué importa
En la mayoría de los proyectos de BigQuery, el principio de Pareto aplica: el 20% de las consultas representa el 80% de los costos. Encontrar y optimizar esas consultas principales ofrece el mayor ROI. Sin esta visibilidad, los equipos desperdician tiempo optimizando consultas que apenas mueven la aguja.
Cómo funciona
La consulta lee metadatos de trabajos desde INFORMATION_SCHEMA.JOBS_BY_PROJECT, deduplica por job_id y ordena por costo bajo demanda descendente. El costo se estima a partir de total_bytes_billed a $6.25/TiB. También calcula el uso aproximado de slots para cada consulta.
Consulta SQL
Fill in your details to get a ready-to-run query:
-- Most expensive queries ranked by on-demand cost
DECLARE lookback_days INT64 DEFAULT 14;
WITH jobs AS (
SELECT
user_email,
query,
job_id,
project_id,
start_time,
end_time,
COALESCE(total_bytes_billed, 0) AS bytes_billed,
total_slot_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(bytes_billed / POW(1024, 4), 4) AS tib_scanned,
ROUND(bytes_billed / POW(1024, 4) * 6.25, 2) AS on_demand_cost_usd,
ROUND(SAFE_DIVIDE(total_slot_ms,
TIMESTAMP_DIFF(end_time, start_time, MILLISECOND)), 0) AS avg_slots
FROM jobs
...Explicación de la consulta
INFORMATION_SCHEMA.JOBS_BY_PROJECT se filtra a trabajos de consulta completados dentro de la ventana de retención. ROW_NUMBER() deduplica en job_id. El costo bajo demanda se calcula como total_bytes_billed / 1024^4 * $6.25. El número aproximado de slots muestra la intensidad computacional: total_slot_ms / execution_time_ms.
Puntos clave
Las 10 consultas más costosas típicamente representan el 50-80% de los costos totales del proyecto.
Las consultas que aparecen múltiples veces en los primeros resultados son candidatas para materialización o caché.
Las consultas de alto costo con pocos slots están analizando demasiados datos — agregue filtros de partición o seleccione menos columnas.
Las consultas de alto costo con muchos slots están limitadas por cómputo — simplifique JOINs, reduzca operaciones DISTINCT o use funciones aproximadas.
Mejores prácticas
- 1
Revise las 10 principales consultas semanalmente y cree tickets de optimización para cada una.
- 2
Agregue filtros de partición para eliminar escaneos completos de tablas en tablas particionadas por tiempo.
- 3
Reemplace SELECT * con listas de columnas explícitas para reducir bytes analizados.
- 4
Use la explicación del plan de consulta de BigQuery para identificar etapas que procesan más datos.
¿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 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í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íaAnálisis de costos de BigQuery por usuario
Descubra qué usuarios generan más gasto en BigQuery. Consulte INFORMATION_SCHEMA para clasificar usuarios por costo bajo demanda e identificar objetivos de optimización.
Leer guía