ADO.NET SQL查询联接

本文关键字:查询 SQL NET ADO | 更新日期: 2023-09-27 18:25:12

我正在编写一个小测试应用程序,它连接到一个SQL Server数据库,该数据库中有两个表。表1是一个带有非唯一键的数据列表,该键指向表2中的多行。目前,我所做的是遍历表1中的每个记录,然后用一个单独的查询从表2中获得相关记录。表2中有超过2600万条记录,这一过程需要很长时间。表1中的数据可能只有几百条记录,也可能多达100万条。

有没有办法加快这种数据访问速度?也许使用表联接来获取一个查询中的所有数据?或者其他什么?

很抱歉,我不能发布数据库表或当前代码,因为我在保密协议下,因为这是非常敏感的数据。无论如何,当前的代码在这里有点无关紧要,因为我正在寻找一种全新的(更好的)方法来实现这一点。

请注意,我在.NET中使用ADO和C#。

EDIT:我可以执行JOIN查询,但更多的问题是,使用ADO是否会更高效?我知道它通常会更有效,但不确定ADO是否能处理这个问题。也在寻找一些例子C#代码来做到这一点。谢谢

ADO.NET SQL查询联接

您可以通过这样的JOIN一次性获得所有数据:

SELECT t1.NonUniqueKey, t2.*
FROM Table1 t1
    JOIN Table2 t2 ON t1.NonUniqueKey = t2.NonUniqueKey

您可能会考虑在NonUniqueKey上建立索引,但这对您来说应该比执行n个查询更好,在Table1

中每行执行一个查询