2008R2更新链接服务器(SQL2000)慢的问题

15秒跟2秒之间的区别    

      UPDATE    a   SET       flag = 1   FROM      LINK_39.test_01.dbo.NSB_test AS a   WHERE     bh IN ( SELECT TOP 500                             bh                     FROM    LINK_39.test_01.dbo.NSB_test                     WHERE   bh IS NOT NULL                     ORDER BY bh )

DECLARE @bh VARCHAR(MAX)= ''

  SELECT    @bh = @bh + ',' + CAST(CAST(bh AS INT) AS VARCHAR(10))   FROM      (               SELECT TOP 500                         bh               FROM      LINK_39.test_01.dbo.NSB_test               WHERE     bh IS NOT NULL               ORDER BY  bh             ) s         --SELECT  RIGHT(@bh, LEN(@bh) - 1)

DECLARE @sql VARCHAR(MAX)   SET @sql = '   UPDATE    a   SET       flag = 1   FROM      LINK_39.test_01.dbo.NSB_test AS a   WHERE     bh IN ('     SET @sql = @sql + RIGHT(@bh, LEN(@bh) - 1) + ') '   PRINT @sql   EXEC( @sql)  

你可能感兴趣的:(sql2000)