链接服务器上的更新语句花费的时间太长

时间:2018-07-02 17:44:17

标签: sql sql-server azure

我正面临一个奇怪的情况。我有以下update语句,与一个月前的几乎瞬间相比,花费的时间太长,几乎要花费30秒,而要执行Azure中的链接服务器:

UPDATE es
SET es.ADFLAG3=1
FROM MYLINKEDSERVER.IMPERIALDB.DBO.ESFIDOCUMENTTRADE es
JOIN #WMS_CVR_ORDERCONFIRMAT WMSC on es.gid=WMSC.FDOCUMENTGID

我该如何优化?有什么事吗谢谢

编辑

执行计划中的远程扫描是100%...

1 个答案:

答案 0 :(得分:0)

第二个表中可能有多个行匹配。如果是这样,exists可能会有所帮助:

UPDATE es
    SET es.ADFLAG3 = 1
FROM MYLINKEDSERVER.IMPERIALDB.DBO.ESFIDOCUMENTTRADE
WHERE EXISTS (SELECT 1
              FROM #WMS_CVR_ORDERCONFIRMAT WMSC 
              WHERE es.gid = WMSC.FDOCUMENTGID
             );

无论哪种情况,您都希望在#WMS_CVR_ORDERCONFIRMAT(FDOCUMENTGID)上建立索引。