Composite Index Recommender
Cosmos cobra RU diferente en composite indexes ({fieldA, fieldB}). NoSqlStudio analiza el historial de queries del Query Cost Inspector, agrupa shapes que tocan 2+ campos sin composite index, proyecta ~60% de ahorro de RU por query, y genera el JSON `compositeIndexes` listo para pegar en la indexing policy del Cosmos.
Dónde vive en la app: Tools → Cosmos DB → Composite Index Recommender
Qué hace
- Lee history del Query Cost Inspector (todas las queries de la sesión).
- Filtra shapes que tocan ≥ 2 campos (sin composite actual).
- Agrupa por (ns, paths) — mismas combinaciones se vuelven una sugerencia.
- Estima 60% RU savings por shape (heurística — Cosmos no publica tabla exacta).
- Genera JSON `compositeIndexes` en formato Cosmos (max 4 paths/composite).
- Ranquea top 20 recommendations por savings.
Paso a paso
- 1
Corra queries reales por algunos minutos
Query Cost Inspector necesita samples. Corra el workload normal o suba carga sintética.
- 2
Abra el Recommender
Tools → Cosmos DB → Composite Index Recommender. Ajuste "Min queries to consider" (default 5) para filtrar ruido.
- 3
Vea las recomendaciones
Top 20 por "Est. savings". Cada fila tiene: namespace, paths, query count, total RU, savings, rationale + JSON snippet.
- 4
Valide vía WHAT-IF (recomendado)
Toma el JSON del top recommendation → va al WHAT-IF Lab → mutation add-index → confirma savings real antes de aplicar en prod.
- 5
Aplica
Copie el JSON → Azure portal → Container → Settings → Indexing Policy → agregue en el campo compositeIndexes → save.
Casos de uso reales
Pattern Sort + filter
App tenía `find({tenantId, status}).sort({createdAt: -1})` corriendo 50k veces/día consumiendo 350 RU avg. Composite `{tenantId, status, createdAt}` recomendado. Post-deploy: 8 RU avg. Ahorro R$ 3.8k/mes.