我正面临着一种奇怪的局面。下面的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%.
发布于 2018-07-02 17:47:17
有可能在第二个表中有多个行匹配。如果是这样,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)上建立一个索引。
https://stackoverflow.com/questions/51141269
复制相似问题