You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cosmos FeedIterator大Offset查询内存占用过高问题问询

关于Azure Cosmos DB大偏移量查询内存占用的疑问

我在查询一张包含35万条记录的Azure Cosmos表,查询逻辑是获取时间戳大于-62135596800的全表数据,再跳过399000条记录,预期返回空结果。查询耗时约16秒可以接受,但运行期间内存占用高达1GB。

我知道这种用法可能不符合Cosmos的设计初衷,但想确认这种高内存占用是预期行为还是Bug?

生成的SQL查询语句如下:

SELECT VALUE root
FROM root
WHERE (((root["ObjectType"] = "dummytype") 
AND (root["Context"] = null))
AND (root["timestamp"] > -62135596800)) 
ORDER BY root["timestamp"] ASC
OFFSET 399000 LIMIT 1000

查询执行期间的内存使用情况:偏移量为399000时,内存随查询进程持续上升,即便多次触发GC,占用仍未明显回落(对应图表显示内存逐步攀升至1GB左右)。

我使用的是最新版本的Microsoft.Azure.Cosmos(3.31.2)。由于该查询本应仅跳过所有记录并返回空结果,我预期内存占用会低得多。

如下表所示,内存使用量随查询偏移量增大呈线性增长:

偏移量内存占用
025MB
99000390MB
199000618MB
299000859MB
3990001005MB

内存使用量随迭代器需遍历的记录数增加而增长是否属于预期行为?我原本以为它会分批加载表数据,已遍历的片段会被垃圾回收,但从内存变化来看并非如此。


内容的提问来源于stack exchange,提问作者remagg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:40:46