如标题所说,数据库A中的表TableA部分字段值对应了数据库B里的表TableB记录
我现在的做法是先将TableA和TableB都取到两个DataTable中,然后遍历A的记录在B中进行查找,这样做下来感觉效率很低。另外有一种思路是转换成IQueryable,再用lamba表达式来做连接,不知道性能会不会有提升

解决方案 »

  1.   

    Sql Server 跨服务器连接
      

  2.   

    跟是 DataTable 还是 IQueryable<> 无关,主要是查询过程中不要把无关的数据记录读取到客户端来反序列化,否则几乎所有时间都耗在通讯上了。
      

  3.   

    1、可以分别读取不同数据库的对应数据,在服务器的内存中对数据进行整理操作。(这个方式应该数据量较大的时候会有问题,而且其实效率不高,但是做法简单)
    2、也可以sql语句连接其他数据库进行查询(语句怎么写的百度下哈,我记得貌似有的),但是我觉得这个方式对我而言因为不常用到,没有实际经验。
      

  4.   

    如果数据量不大,那么全部取出来,再比较。没什么问题。用DataTable和用List都行。当然List最好,DataTable不是不好,是该淘汰了。如果两个表数据量都大,而最终比较后取的数据量比较小,那么建议用reader,读取过程中比较和处理。==========
    最新文章:解读经典《C#高级编程》 第四章之 泛型约束 https://mp.weixin.qq.com/s/ZHiaTpzBD-OdPs0Eo7iawQ
    欢迎关注微信公众号 “产品技术知与行” ,打造全面的结构化知识库,包括原创文章、免费课程(C#,Java,Js)、技术专题、视野知识、源码下载等内容。 
      

  5.   

    数据库A和数据库B,是在一个服务器上嘛?
    如果是同一个mssql的两个库,那么直接跨表join就可以了。
    [库名].[dbo].[表名]如果是两个不同的服务器上,那么我记得sql也是有跨库登录语句的,登陆后还是可以跨库查询。
    具体的你可以查一下。实在不行,那就从两个库进过筛选条件,把数据读取下来,然后在代码里join