C# Azure Cosmos DB - 如何选择大量数据(~100,000 个文档)

标签 c# azure azure-cosmosdb azure-cosmosdb-sqlapi

我有一个 Cosmos DB,需要使用 C# 查询 100 000 个单独的文档。这将填充一个网格(显然有分页)。我做了很多搜索,但似乎只找到了使用 FeedIterator 来查询数据。

目前我正在使用此代码来查询我的测试数据:

using (var appsIterator = _container.GetItemQueryIterator<SensorMaster>(query))
        {
            Console.WriteLine("\t\t\t\tID\tName\tUnitID\tPoints");
            while (appsIterator.HasMoreResults)
            {
                var apps = await appsIterator.ReadNextAsync();
                foreach (var item in apps)
                {
                    count++;
                    Console.WriteLine($"{item.ID}\t{item.Name}\t{item.UnitID}\t{item.Points}");
                }
                charge += apps.RequestCharge;
            }
            Console.WriteLine($"Total charge: {charge}");
        }

这会选择约 3900 条记录,但需要大约 45 秒才能完成。 有没有更好的方法来选择大量文档/记录?

最佳答案

对于非常大的查询(您想要对结果进行分页),请使用继续标记。您可以在这里获取更多信息并学习如何使用,Pagination in Azure Cosmos DB .

您要关注的是 MaxItemCount,而不是 MaxPageSize。

顺便说一句,向用户分页 100K 记录是一个奇怪的用例。我想我不记得有人想要滚动浏览 100K 项。

关于C# Azure Cosmos DB - 如何选择大量数据(~100,000 个文档),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72678650/

相关文章:

c# - Webapi odata扩展 Entity Framework 功能

sql-server - 如何从 Azure Devops 发布管道连接本地 SQL Server(使用 SQL 安装的 VM)

c# - Azure Web 应用程序中未找到 Win32 DLL 错误

azure - 如何为 Cosmos DB 内置数据读取器角色设置特权身份管理

c# - 如何更新cosmos db中的子文档

c# - C# 中的 HttpWebRequest 和表单例份验证

c# - VU Meter 像 Windows 音量混合器

c# - LINQ 中扁平父子关联的计数

Azure DevOps 托管代理 - 将工具(PS 模块)添加到代理

c# - Cosmos DB Azure 表 API o数据身份验证 REST/C#?