CosmosDB仿真器提供不同的查询统计信息

时间:2019-12-29 15:58:28

标签: azure azure-cosmosdb azure-cosmosdb-sqlapi azure-cosmosdb-tables

我正在使用本地仿真器执行SQL查询,但面临与count()函数相关的多个问题。我已设置每页10000000个查询结果。我已生成23363个虚拟文档以检查count()性能和总RU。

在23363个文档中,有499个文档针对“ FacilityId”:“ 3C0EC490-6FCC-433E-A0D2-19A5A0132539”和 有关“ FacilityId”的其余文档:“ A5BCCC74-97C2-4DD1-9EE0-6A0968EB950C”。

{
    "Id": "33FAB739-2B44-13A8-5B65-BAF365B96B9E",
    "Type": "VehicleCheckInStatus",
    "FacilityId": "3C0EC490-6FCC-433E-A0D2-19A5A0132539", 
    "Email": "ABC11@example.com",   
    "SubQueue": [
        {
            "Id": 3,
            "SubQueue": "ServiceLane.Open",
            "IsLatest": "false"
        },
        {
            "Id": 5,
            "SubQueue": "ServiceLane.InProgress",
            "IsLatest": "true"
        }
    ]
}

1)在查询中使用聚合函数是否是一种好习惯?

2)仿真器是否提供了正确的RU和查询状态?

3)每次查询操作后获取不同的查询统计信息。

我打开模拟器并执行以下查询

SELECT q.SubQueue, COUNT(q.IsLatest) Total 
FROM c JOIN q IN c.SubQueue 
WHERE c.FacilityId = '3C0EC490-6FCC-433E-A0D2-19A5A0132539' 
AND c.Type = 'VehicleCheckInStatus' 
AND q.IsLatest = 'true' 
AND STARTSWITH(c.Email, 'A')
GROUP BY q.SubQueue 

输出

RU : 11.9 
Retrieved document count : 
Retrieved document size : bytes 
Output document count : 
Output document size : bytes

执行SELECT * FROM c后,执行相同的计数查询并得到如下结果:

输出

RU : 11.9
Retrieved document count : 23363 
Retrieved document size : 18360564 bytes 
Output document count : 23363 
Output document size : 18384182 bytes

输出将获取所有文档大小而不是499(FacilityId ='3C0EC490-6FCC-433E-A0D2-19A5A0132539')

现在执行后

SELECT * FROM c where FacilityId = '3C0EC490-6FCC-433E-A0D2-19A5A0132539'

运行相同的计数查询,得到的结果如下所示

输出

RU : 11.9
Retrieved document count : 499
Retrieved document size : 372240 bytes 
Output document count : 499
Output document size : 372789 bytes

为什么同一查询给出不同的“检索/输出”文档大小/计数。我不知道为什么会这样,或者我做错了什么。我该如何解决这个问题?

0 个答案:

没有答案
相关问题