gpt4 book ai didi

cosmosDB 上的 Azure RU

转载 作者:行者123 更新时间:2023-12-02 07:08:05 27 4
gpt4 key购买 nike

我正在尝试了解 RU 的工作原理,以便优化对数据库发出的请求。

我有一个简单的查询,其中按 id 选择

SELECT * FROM c WHERE c.id='cl0'

该查询花费 277.08 RU

然后我有另一个查询,我通过另一个属性进行选择

SELECT * FROM c WHERE c.name[0].id='35bfea78-ccda-4cc5-9539-bd7ff1dd474b' 

该查询花费 2.95 RU

我不明白为什么这两个查询之间消耗的 RU 存在如此大的差异。

两个查询返回完全相同的结果

[
{
"label": "class",
"id": "cl0",
"_id": "cl0",
"name": [
{
"_value": "C0.Iklos0",
"id": "35bfea78-ccda-4cc5-9539-bd7ff1dd474b"
}
],
"_rid": "6Ds6AJHyfgBfAAAAADFT==",
"_self": "dbs/6Ds4FA==/colls/6Ds6DFewfgA=/docs/6Ds6AJHyfgBdESFAAAAAAA==/",
"_etag": "\"00007200-0000-0000-0000-w3we73140000\"",
"_attachments": "attachments/",
"_ts": 1528722196
}
]

最佳答案

我之前遇到过类似的问题,所以您不是唯一面临此问题的人。我为您提供两种解决方案。

1.sql SELECT * FROM c WHERE c.id='cl0' 在整个数据库中查询文档。如果您可以为正确的字段创建分区键,它将大大提高您的性能。你可以引用这个doc了解如何选择分区键。

2.我在帖子中找到了以下答案:Azure DocumentDB Query by Id is very slow

Microsoft 支持人员做出了回应,并解决了该问题。他们为该集合添加了 IndexVersion 2。不幸的是,它还不能从门户获得,并且新创建的帐户/集合仍然没有使用新版本。您必须联系 Microsoft 支持人员才能对您的帐户进行更改。

我建议您提交反馈here追踪此公告。

希望对您有帮助。

-- 编辑

要升级到索引版本 2,请使用以下代码

var  collection = (await client.ReadDocumentCollectionAsync(string.Format("/dbs/{0}/colls/{1}", databaseId, collectionId))).Resource;                
collection.SetPropertyValue("IndexVersion", 2);
var replacedCollection = await client.ReplaceDocumentCollectionAsync(collection);

关于cosmosDB 上的 Azure RU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756440/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com