我正在使用本地仿真器执行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
为什么同一查询给出不同的“检索/输出”文档大小/计数。我不知道为什么会这样,或者我做错了什么。我该如何解决这个问题?