Ir al contenido
← Volver al overview de Cosmos DB
Killer #8

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. 1

    Corra queries reales por algunos minutos

    Query Cost Inspector necesita samples. Corra el workload normal o suba carga sintética.

  2. 2

    Abra el Recommender

    Tools → Cosmos DB → Composite Index Recommender. Ajuste "Min queries to consider" (default 5) para filtrar ruido.

  3. 3

    Vea las recomendaciones

    Top 20 por "Est. savings". Cada fila tiene: namespace, paths, query count, total RU, savings, rationale + JSON snippet.

  4. 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. 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.

¿Listo para verlo en su cuenta Cosmos?Descargar NoSqlStudioSiguiente → PITR Browser