Composite Index Recommender
Cosmos composite indexes ({fieldA, fieldB}) पर अलग RU charge करता है। NoSqlStudio Query Cost Inspector के query history का विश्लेषण करता है, composite index के बिना 2+ fields को छूने वाले shapes को समूहीकृत करता है, प्रति query ~60% RU savings का projection करता है, और Cosmos indexing policy में paste करने के लिए तैयार `compositeIndexes` JSON उत्पन्न करता है।
ऐप में यह कहाँ रहता है: Tools → Cosmos DB → Composite Index Recommender
यह क्या करता है
- Query Cost Inspector का history पढ़ता है (session की सभी queries)।
- ≥ 2 fields को छूने वाले shapes को filter करता है (कोई वर्तमान composite नहीं)।
- (ns, paths) द्वारा समूहीकृत करता है — समान combinations एक सुझाव बनते हैं।
- प्रति shape 60% RU savings अनुमान (heuristic — Cosmos exact table प्रकाशित नहीं करता)।
- Cosmos format में JSON `compositeIndexes` उत्पन्न करता है (max 4 paths/composite)।
- Savings द्वारा top 20 recommendations को रैंक करता है।
चरण-दर-चरण
- 1
कुछ मिनटों के लिए real queries चलाएँ
Query Cost Inspector को samples चाहिए। सामान्य workload चलाएँ या synthetic load बढ़ाएँ।
- 2
Recommender खोलें
Tools → Cosmos DB → Composite Index Recommender। Noise filter करने के लिए "Min queries to consider" (default 5) समायोजित करें।
- 3
Recommendations देखें
"Est. savings" द्वारा Top 20। प्रत्येक row में: namespace, paths, query count, total RU, savings, rationale + JSON snippet।
- 4
WHAT-IF के माध्यम से validate करें (अनुशंसित)
Top recommendation का JSON लें → WHAT-IF Lab में जाएँ → add-index mutation → prod में लागू करने से पहले real savings की पुष्टि करें।
- 5
लागू करें
JSON कॉपी करें → Azure portal → Container → Settings → Indexing Policy → compositeIndexes field में जोड़ें → save।
वास्तविक use cases
sort + filter pattern
App में `find({tenantId, status}).sort({createdAt: -1})` 350 RU avg खपत करते हुए 50k बार/दिन चल रहा था। Composite `{tenantId, status, createdAt}` अनुशंसित। Post-deploy: 8 RU avg। R$ 3.8k/माह बचत।