Query Cost Inspector
Toda query rodada pelo NoSqlStudio captura o custo em RU (header x-ms-request-charge) e empilha num ring buffer de 500 entries. O workspace agrupa por shape, mostra total/avg/p95/avg-ms e classifica cada shape como expensive (>100 RU), moderate (>20 RU) ou cheap. Surface as queries que estão sangrando dinheiro em segundos.
Onde ele fica no app: Tools → Cosmos DB → Query Cost Inspector
O que ele faz
- Captura automática de RU + duração toda vez que você roda find / aggregate / insert / update / delete.
- Group by query shape (com placeholders para valores) — mesmas queries com valores diferentes viram a mesma linha.
- Métricas: count, total RU, average, p95, average ms.
- Classification badge: expensive (>100 RU), moderate (>20), cheap.
- Filter inline por ns ou shape.
- Botão "Clear" para zerar a sessão e medir só o impacto de uma mudança específica.
Passo a passo
- 1
Conecte e rode queries normalmente
Toda query que passa pelo bridge do NoSqlStudio (workspace Aggregations, tab Documents, etc) é automaticamente capturada.
- 2
Abra Tools → Cosmos DB → Query Cost Inspector
A tab abre populada com as queries da sessão atual. Filtre por namespace ou parte do shape.
- 3
Identifique as expensive shapes
Sort pela coluna "Total RU" descending. Top 3-5 shapes geralmente concentram 60-80% do consumo. Foque ali.
- 4
Aja: crie um índice, refatore, ou rode WHAT-IF
Pegue o shape expensive → vá para o WHAT-IF Lab → teste "add-index" → meça o delta antes de aplicar.
Casos de uso reais
Pareto descoberto em 5 min
DBA descobriu que 1 query do tipo `find({tenantId, status})` consumia 47% do RU diário. Adicionou índice composite via Killer #8. RU caiu 38% imediatamente.
Catch regression em PR review
Engenheiro revisava PR de feature nova rodando em dev contra dados prod-like. Query Cost Inspector mostrou nova query custando 280 RU vs queries similares ~5 RU. Bloqueou merge.
FAQ
Funciona para queries fora do NoSqlStudio?
Para capturar queries do app, configure diagnostic logs e use o Killer #7 (KQL templates) — query "Top 20 RU-expensive queries (today)".
Quantas queries cabem no buffer?
500 mais recentes. Configurável via prefs (próxima release).