Query Cost Inspector
Cada query que corre por NoSqlStudio captura el costo en RU (header x-ms-request-charge) y lo apila en un ring buffer de 500 entries. El workspace agrupa por shape, muestra total/avg/p95/avg-ms y clasifica cada shape como expensive (>100 RU), moderate (>20 RU) o cheap. Surface las queries que sangran dinero en segundos.
Dónde vive en la app: Tools → Cosmos DB → Query Cost Inspector
Qué hace
- Captura automática de RU + duración cada vez que corre find / aggregate / insert / update / delete.
- Group by query shape (con placeholders para valores) — mismas queries con valores diferentes se vuelven la misma fila.
- Métricas: count, total RU, average, p95, average ms.
- Badge de classification: expensive (>100 RU), moderate (>20), cheap.
- Filter inline por ns o shape.
- Botón "Clear" para resetear la sesión y medir solo el impacto de un cambio específico.
Paso a paso
- 1
Conéctese y corra queries normalmente
Cada query que pasa por el bridge de NoSqlStudio (workspace Aggregations, tab Documents, etc) es capturada automáticamente.
- 2
Abra Tools → Cosmos DB → Query Cost Inspector
La tab abre populada con las queries de la sesión actual. Filtre por namespace o parte del shape.
- 3
Identifique las expensive shapes
Sort por la columna "Total RU" descending. Top 3-5 shapes generalmente concentran 60-80% del consumo. Enfoque ahí.
- 4
Actúe: cree un índice, refactorice, o corra WHAT-IF
Tome el shape expensive → vaya al WHAT-IF Lab → pruebe "add-index" → mida el delta antes de aplicar.
Casos de uso reales
Pareto descubierto en 5 min
DBA descubrió que 1 query del tipo `find({tenantId, status})` consumía 47% del RU diario. Agregó índice composite vía Killer #8. RU cayó 38% inmediatamente.
Catch regression en PR review
Ingeniero revisaba PR de feature nueva corriendo en dev contra datos prod-like. Query Cost Inspector mostró nueva query costando 280 RU vs queries similares ~5 RU. Bloqueó merge.
FAQ
¿Funciona para queries fuera de NoSqlStudio?
Para capturar queries del app, configure diagnostic logs y use el Killer #7 (KQL templates) — query "Top 20 RU-expensive queries (today)".
¿Cuántas queries caben en el buffer?
500 más recientes. Configurable vía prefs (próxima release).