cosmosDB上的Azure RU

时间:2018-08-08 22:19:42

标签: azure azure-cosmosdb

我试图找出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
    }
]

2 个答案:

答案 0 :(得分:1)

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

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);

答案 1 :(得分:0)

RU的使用量取决于您的文档大小和查询,我强烈建议您在下面的链接中查询指标。如果您想调整查询或要了解延迟,请查询查询Feed详细信息

  

x-ms-documentdb-query-metrics:   totalExecutionTimeInMs = 33.67; queryCompileTimeInMs = 0.06; queryLogicalPlanBuildTimeInMs = 0.02; queryPhysicalPlanBuildTimeInMs = 0.10; queryOptimizationTimeInMs = 0.00; VMExecutionTimeInMs = 32.56; indexLookupTimeInMs = 0.36; DocumentLoadTimeMs = ved = 600; Timerie = 600; = 125; DocumentLoadTimeMins = ved8 = 0.008; DocumentLoadTimeMins = ved8 = 600; = 300; DocumentLoadTimeInMs = ved8; = 600; = 320 2000; writeOutputTimeInMs = 18.10; indexUtilizationRatio = 1.00   x-ms-request-charge:604.42

https://docs.microsoft.com/en-us/azure/cosmos-db/sql-api-sql-query-metrics