SqlDataReader涉及带连接的查询

时间:2014-07-20 16:58:33

标签: c# sql sql-server performance ado.net

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

我想从Table1读取记录并阅读表2的所有相关记录。我可以使用SqlDataReader并实现peek()来实现此功能,如此处所述(How do I implement a Peek() function on a DataReader?

select ID, Col1 from Table1 order by ID

select ID, col2 from Table2 order by ID

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

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

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

你能否提出一些替代方法来实现这个目标?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您可能需要考虑使用分区表。 Here's the MySQL manual page on partitioninghere's a Stack Overflow question that deals with partitioning and joins