有两台服务器:
1,Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)   Sep 21 2011 22:45:45   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6001: Service Pack 1) 2,Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (Intel X86)   Sep 22 2011 00:28:06   Copyright (c) 1988-2008 Microsoft Corporation  Enterprise Edition on Windows NT 5.2 <X86> (Build 3790: Service Pack 2) 信息如上,1是64的系统和数据库,2是32位的系统和数据库,在1上建立链接服务器到2,慢的很,显示OLEDB等待。返回数据很慢,从2到1建链接服务器。很快。这个大概是什么原因造成的。请高手赐教!

解决方案 »

  1.   

    那估计是兼容性的问题了。链接服务器上的优化不多,如果你非要用链接服务器,那就换点方式,比如用replication来同步再关联,或者加载到本地再关联
      

  2.   

    实时性不强的话,通过链接服务器先select into到一个本地临时表,然后再关联,需要实时的话创建一个复制(replication),到本机,然后再处理。
      

  3.   

    没关联呢,就是SELECT INTO,就慢的很,问题是我必须从1访问2的数据。这个纠结啊。
      

  4.   

    那用复制(replication)吧
      

  5.   

    1. 网络的上行和下行速度,因为link server会加重网络负载
    2. 因为SQL Server的link server可以是索引,看看是建立link server的login是否具有使用索引统计数据的   权限,这个也是对performance有影响的一个因素
    3. 是否有做join还是知识单独查询,能不能利用更少一些的数据做一些相应的测试。
    4. 两个SQL Server Instance的collation是否一致?
    ......
    可能还有更多其它的原因会造成performance的问题,如上面提及的compatibility问题等等。
      

  6.   


    只是select into,照理应该是很快的把,应该不是版本问题吧,版本问题的话应该是不管1-2,还是2-1都满才对:1.是网络速度的问题,上行和下行速度不同,你最好测试一下上下行的网速,不过这个网速也不是你能控制的。2.如果可以的话,把数据导成txt文件,然后复制到远程,然后再插入,这样可能会更快,20万条数据,导出估计也就1分钟,压缩一下,也就几M把,复制到远程估计就1分钟,然后导入也就1分钟。