我在写一个测试应用程序,它连接到一个SQL Server数据库,里面有两个表。表1列出了具有非唯一键的数据,该键指向表2中的多行。目前我所做的是遍历表1中的每条记录,然后使用单独的查询从表2中获取相关记录。表2有超过2600万条记录,这个过程需要很长时间。表1中的数据可能只有几百条记录或者高达约100万条记录。ADO.NET SQL查询加入?
有没有加快数据访问的方法?也许使用表连接来获取一个查询中的所有数据?还是其他什么?
对不起,我不能发布数据库表或当前代码,因为我是NDA,因为它是非常敏感的数据。无论如何,现在的代码是无关紧要的,因为我正在寻找一种全新的(更好的)方法。
请注意我在C#中使用.NET内的ADO。
编辑:我没事做JOIN查询,但更多问,如果这将是更有效的ADO?我知道它一般会更有效率,但不知道ADO是否可以处理这个问题。也正在寻找一些C#代码来做到这一点。谢谢。
这很简单;您可以在两个表之间使用内部联接运算符。另一方面,更糟糕的情况是您尝试将100 * 2600万行加载到内存中。您希望查询总共返回多少行(您实际从Table2获得多少行?) – dash 2012-02-21 09:11:53
表1中每个记录的表2中可能会有大约8-10行。 – Jonnster 2012-02-21 09:32:26