如何在azure cosmos DocumentDB中从查询读取数据时将RequestCharge降低到1RUs

如何在azure cosmos DocumentDB中从查询读取数据时将RequestCharge降低到1RUs,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我想通过更改我的查询将2.28RUs转换为1 RUS,有人能帮我吗?你不能神奇地使查询花费1 RU。我很确定你不能,因为你正在使用查询引擎。通过只返回所需的属性(与返回*)相比,您可能可以稍微减少RU 当您知道不会按这些属性进行搜索时,可以通过将属性排除在索引之外,在写入时稍微减少RU 但为了降低检索期间的RU成本,您需要进行直接读取,而不是查询。这需要API/SDK调用,不能通过查询资源管理器执行。在c#中,这看起来像 var响应= 等待client.readdocumentsync(UriF


我想通过更改我的查询将2.28RUs转换为1 RUS,有人能帮我吗?

你不能神奇地使查询花费1 RU。我很确定你不能,因为你正在使用查询引擎。通过只返回所需的属性(与返回
*
)相比,您可能可以稍微减少RU

当您知道不会按这些属性进行搜索时,可以通过将属性排除在索引之外,在写入时稍微减少RU

但为了降低检索期间的RU成本,您需要进行直接读取,而不是查询。这需要API/SDK调用,不能通过查询资源管理器执行。在c#中,这看起来像

var响应=
等待client.readdocumentsync(UriFactory.CreateDocumentUri(dbId、collectionId、docId));

然后,您可以检查
response.RequestCharge
,查看RU中的成本(并且应该低于查询成本)。

您无法神奇地使查询成本为1 RU。我很确定你不能,因为你正在使用查询引擎。通过只返回所需的属性(与返回
*
)相比,您可能可以稍微减少RU

当您知道不会按这些属性进行搜索时,可以通过将属性排除在索引之外,在写入时稍微减少RU

但为了降低检索期间的RU成本,您需要进行直接读取,而不是查询。这需要API/SDK调用,不能通过查询资源管理器执行。在c#中,这看起来像

var响应=
等待client.readdocumentsync(UriFactory.CreateDocumentUri(dbId、collectionId、docId));

然后,您可以检查
response.RequestCharge
,查看RU中的成本(并且应该低于查询成本)。

您有分区吗?@SteveDrake此特定问题与分区无关。OP正在创建一个查询(相对于直接读取),这会增加RU成本开销,即使使用单个分区集合也是如此。
readDocumentSync
需要一个分区,因此我的问题:)好吧,也许我没有想到:)但我知道在分区上查询会花费更多RU,所以我确实觉得我的Q是有效的。如果OP对某个分区回答了
YES
,我的建议是找到一种查找分区键的方法,如果OP回答了
NO
,那么你的答案是完美的(顺便说一句,我投了赞成票)。我有一个系统有这个要求,我们有另一个根来找到分区。这是公平的。这意味着,不管分区如何,OP都无法降低查询的RU成本(通过任何显著的方式)而不是点读取。你有分区吗?@SteveDrake这个问题与分区无关。OP正在创建一个查询(相对于直接读取),这会增加RU成本开销,即使使用单个分区集合也是如此。
readDocumentSync
需要一个分区,因此我的问题:)好吧,也许我没有想到:)但我知道在分区上查询会花费更多RU,所以我确实觉得我的Q是有效的。如果OP对某个分区回答了
YES
,我的建议是找到一种查找分区键的方法,如果OP回答了
NO
,那么你的答案是完美的(顺便说一句,我投了赞成票)。我有一个系统有这个要求,我们有另一个根来找到分区。这是公平的。这意味着,不管分区如何,OP都无法降低查询的RU成本(通过任何显著的方式)和点读取的成本。