Azure CosmosDB 如何将 CreateItem 费用降至 5 RU?

Azure CosmosDB getting CreateItem charge down to 5 RU how?

我想弄清楚为什么我的 CreateItem<T> returns 请求收取 7.05 RU 的费用用于插入具有 5 个属性的简单对象,包括 ID 和分区键不到 1KB。它只是一个默认容器,带有默认索引等。

文档说应该是 5 RU。我尝试使用 ItemRequestOption 来禁用返回对象、禁用该项目的索引等,但它保持在 7.05 RU。我也试过更改帐户的一致性级别,但没有任何变化。

ID 和分区键 returns 上的 ReadItem,按预期收取 1.0 RU,如果 运行 作为查询,则收取 2.9 RU。

我对 CreateItem 的 7.05 RU 成本感到有点恼火,因为它的 RU 成本比 5 RU 增加了 41%。启用 TTL 将 RU 成本提高到 7.65。

诊断此类问题的最佳方法是什么?我已经尝试查看响应诊断,但它并没有真正帮助。

写入操作的 RU 消耗将受到您的 indexing policy 的严重影响。

默认情况下 CosmosDB 容器将为整个文档(每个 属性)启用索引。如果将其替换为查询中频繁使用的特定路径,则可以显着提高写入操作的性能并降低消耗成本。

另请注意,无法保证查询中每个文档的 RU 消耗:documentation。它会根据索引、分区键、分区基数、地理复制、执行期间的“扇出”等而有所不同。