c# - 如何管理一百万条记录?

标签 c# mysql sql-server sql-server-2008

我真的需要专家的帮助来回答我的问题。

场景如下:

我使用 sql 选择查询来检索一百万条记录。 我需要对存储在数据表中的结果记录进行排序和分组(一次执行) 并循环遍历它以对其进行分组和排序。 我知道这太幼稚了,不是处理它的正确方法。 如何有效地管理百万条记录并对其进行分组和排序?

这里真的需要帮助。听说过批量执行选择查询,但是当我们手头没有全部数据时如何实现分组和排序? 我不能直接使用 sql order by 和 group by,这违反了我的要求。

这是我现在正在做的事情:

我有以下对象,即用于分组和排序的列名

List<Group> groupList;
List<Sort> sortList;
DataTable reportData; // Here im having the entire records from db

我逐行循环“reportData”并匹配当前行和上一行以进行自定义分组和排序。想知道当我们使用分批执行或有任何替代解决方案时如何完成同样的事情吗?

最佳答案

I need to perform sorting and grouping on the resultant records which im storing in a datatable( in one execution) and looping through it for grouping and sorting it.

有什么用?

说真的。

不要拉,然后尝试在后面有一个愚蠢的对象模型来尝试智能化(抱歉,数据集不是特别智能)。

在您的 select 语句中分组和排序,提取已经分组和连接的数据并完成它。

在 17 年前发布原始版本(4.2,sysase sql server 的一个端口)时,一百万条记录对于 sql server 来说是少量数据。如今,它很可能适合处理器的第三级缓存,并且不是一个合适的 sql 服务器,甚至意识到它刚刚处理过。

SQL 特别适合做项目,自从它们引入 MARS 以来,您甚至可以在一个连接上运行多个查询,这在这里派上用场。

因此,返回 - 丢弃数据集并“我尝试编写排序算法”并创建适当的 SQL 语句以根据需要提取数据。

关于c# - 如何管理一百万条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10039101/

相关文章:

mysql - 有没有一种简单的方法可以按照一个索引更新所有记录?

sql - 如何在 SQL Server 中使用 JOIN 执行 UPDATE 语句?

c# - AppDomain.Load() 的有趣错误

php - 更新或插入方法中的 Doctrine 2 DBAL 表达式

mysql - 集群中的aws aurora rds(mysql)无法插入表情符号

sql-server - docker 容器内的 SQL Server LocalDB

sql-server - 同时存入两张主键表

c# - 在 Json.Net 中生成换行符而不是 CRLF

c# - Visual Studio 中的 “Go To Definition” 仅显示非项目引用的元数据

c# - ajax 请求在 linkbutton asp 回发之前不会首先运行