查找 Azure Cosmos DB for MongoDB 中执行的操作的请求单位费用
适用对象: MongoDB
Azure Cosmos DB 支持多种 API,例如 SQL、MongoDB、Cassandra、Gremlin 和表。 每个 API 具有自身的数据库操作集。 这些操作包括简单的点读取和写入,以及复杂的查询等等。 每个数据库操作根据其复杂性消耗系统资源。
所有数据库操作的成本将由 Azure Cosmos DB 规范化,并以“请求单位”(简称 RU)表示。 请求费用是所有数据库操作使用的请求单位。 你可以将 RU 视为性能货币,它抽象化了执行 Azure Cosmos DB 支持的数据库操作所需的系统资源,例如 CPU、IOPS 和内存。 不管使用哪个 API 来与 Azure Cosmos DB 容器和数据库操作交互,都始终以 RU 来计量成本。 无论数据库操作是写入、点读取还是查询,都始终以 RU 来计量成本。 若要了解详细信息,请参阅请求单位和注意事项一文。
本文介绍如何通过不同的方式,来查找针对 Azure Cosmos DB for MongoDB 中的容器执行的任何操作所消耗的请求单位 (RU)。 如果使用的是不同的 API,请参阅 API for NoSQL、API for Cassandra、API for Gremlin 和 API for Table 这几篇文章,查看 RU/秒费用。
RU 费用由名为 getLastRequestStatistics
的自定义数据库命令公开。 该命令返回一个文档,其中包含上次执行的操作的名称、其请求费用和持续时间。 如果使用 Azure Cosmos DB for MongoDB,则可以通过多个选项来检索 RU 费用。
使用 Azure 门户
登录到 Azure 门户。
创建新的 Azure Cosmos DB 帐户并在其中植入数据,或选择一个已包含数据的现有帐户。
转到“数据资源管理器”窗格,然后选择要处理的容器。
选择容器名称旁边的“...”,然后选择“新建查询” 。
输入有效的查询,然后选择“执行查询”。
选择“查询统计信息”,以显示执行的请求的实际请求费用。 此查询编辑器允许你仅针对查询谓词运行和查看请求单位费用。 不能将此编辑器用于数据操作命令(例如 insert 语句)。
若要获取数据操作命令的请求费用,请在基于 shell 的 UI(如 Mongo shell、Robo 3T、MongoDB Compass 或包含 shell 脚本的 VS Code 扩展)中运行
getLastRequestStatistics
命令。db.runCommand({getLastRequestStatistics: 1})
以编程方式
使用 Mongo shell 时,可以使用 runCommand() 执行命令。
db.runCommand('getLastRequestStatistics')
后续步骤
若要了解如何优化 RU 消耗量,请参阅以下文章:
- Azure Cosmos DB 中的请求单位和吞吐量
- 在 Azure Cosmos DB 中优化预配的吞吐量成本
- 优化 Azure Cosmos DB 中的查询成本
- 尝试为迁移到 Azure Cosmos DB 进行容量计划? 可以使用有关现有数据库群集的信息进行容量规划。
- 如果你只知道现有数据库群集中的 vCore 和服务器数量,请阅读根据 vCore 或 vCPU 数量估算请求单位数
- 若知道当前数据库工作负载的典型请求速率,请阅读使用 Azure Cosmos DB 容量计划工具估算请求单位