涉及连接查询的SqlDataReader

本文关键字:SqlDataReader 查询 连接 | 更新日期: 2023-09-27 18:13:50

我有两个表由一个外键(ID)链接。在表1中有100万条记录。在表2中有5000万条记录。

我想从表1中读取记录,并读取表2中的所有相关记录。我可以使用SqlDataReader并实现peek()来实现这里讨论的功能(我如何在DataReader上实现Peek()函数?)

select ID, Col1 from Table1 order by ID
select ID, col2 from Table2 order by ID

但是peek方法的缺点是我必须在移动父结果的指针之前将每个子记录与父记录进行比较。

如果我在SQL Server中使用join,它将执行join操作,然后开始流式处理结果,这需要大量内存。

另一种方法是分批分割连接操作,但这涉及触发多个SQL查询,这是我不想要的。

你能建议一些替代方法来实现这一点吗?

涉及连接查询的SqlDataReader

如果我正确理解了您的问题,那么您可能希望考虑使用分区表。这里是关于分区的MySQL手册页面,这里有一个关于分区和连接的Stack Overflow问题