You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Azure Cosmos MongoDB无服务器环境缺失索引检测工具

Azure Cosmos DB MongoDB API 缺失索引识别方案

针对你在Azure Cosmos DB MongoDB无服务器部署中遇到的RPS异常、RU消耗过高问题,以下是无需逐一排查应用查询即可识别缺失索引的实用方案:

1. 利用Azure Cosmos DB内置索引顾问(Index Advisor)

这是最直接的官方工具,对标SQL Server First Responder Kit的索引识别能力:

  • 登录Azure门户,进入你的Cosmos DB账户,在左侧导航栏找到索引顾问(Index Advisor);
  • 工具会自动分析过去7天的查询负载,识别出导致全表扫描(COLLSCAN)的查询,并给出具体的缺失索引建议;
  • 你可以直接在门户中一键创建推荐的索引,无需手动编写索引语句。

2. 通过查询运行时分析定位无索引查询

使用MongoDB兼容的命令找出正在执行的全表扫描查询:

  • 执行命令:db.currentOp({ "query": { "$exists": true }, "planSummary": "COLLSCAN" })
  • 该命令会返回所有正在执行全表扫描的查询,这类查询通常是RU消耗过高、RPS异常的主要原因,针对这些查询的过滤条件创建索引即可优化。

3. 分析Cosmos DB查询日志

将Cosmos DB的查询日志导出到Log Analytics后,可通过Kusto查询批量分析无索引查询:

  • 示例Kusto查询:
    AzureDiagnostics
    | where ResourceType == "COSMOSDB" and OperationName == "QueryExecute"
    | where tostring(Properties["planSummary"]) contains "COLLSCAN"
    | summarize count() by tostring(Properties["queryText"])
    | order by count_ desc
    
  • 该查询会统计所有执行全表扫描的查询及其出现次数,按频率排序后优先处理高频查询的索引优化。

4. 社区工具辅助(需注意Cosmos兼容性)

部分MongoDB社区工具可兼容Cosmos DB MongoDB API,比如:

  • Percona Toolkit的pt-mongodb-query-digest:可分析查询日志,识别慢查询和无索引查询;
  • MongoDB Compass:连接Cosmos DB后,通过“Explain Plan”功能查看单个查询的执行计划,判断是否使用索引,也可通过“Performance”面板查看查询性能瓶颈。

内容的提问来源于stack exchange,提问作者Justin williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 22:52:17