Sql 链接服务器上的Update语句花费的时间太长

Sql 链接服务器上的Update语句花费的时间太长,sql,sql-server,azure,Sql,Sql Server,Azure,我面临着一种奇怪的情况。我有以下update语句,要对Azure中的链接服务器执行该语句,所需时间太长,几乎是30秒,而一个月前几乎是瞬间: UPDATE es SET es.ADFLAG3=1 FROM MYLINKEDSERVER.IMPERIALDB.DBO.ESFIDOCUMENTTRADE es JOIN #WMS_CVR_ORDERCONFIRMAT WMSC on es.gid=WMSC.FDOCUMENTGID 我如何优化它?有什么不对劲吗?谢谢 编辑 执行计划内的远程扫描为1

我面临着一种奇怪的情况。我有以下
update
语句,要对Azure中的链接服务器执行该语句,所需时间太长,几乎是30秒,而一个月前几乎是瞬间:

UPDATE es
SET es.ADFLAG3=1
FROM MYLINKEDSERVER.IMPERIALDB.DBO.ESFIDOCUMENTTRADE es
JOIN #WMS_CVR_ORDERCONFIRMAT WMSC on es.gid=WMSC.FDOCUMENTGID
我如何优化它?有什么不对劲吗?谢谢

编辑


执行计划内的远程扫描为100%…

可能有多行与第二个表匹配。如果是这样,
存在
可能有助于:

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\u CVR\u orderconfirm(FDOCUMENTGID)

上创建索引,现在创建索引需要30秒以上的时间。肯定还有别的事情不对。我不知道是什么。你试过exists语法了吗?你的意思是什么?也许一个月前数据很少,现在有很多。链接服务器通常是一个坏消息idea@Nick.McDermaid-数据量相同,首先使用LS是逻辑。如果不创建本地实例,然后创建一个LS,那么如何访问Azure中托管的DB?在
\WMS\u CVR\u orderconfirm
中有多少记录?
ESFIDOCUMENTTRADE
中有多少?
#WMS\u CVR\u订单确认
多久更改一次?此查询需要多长时间运行一次?
#WMS\u CVR\u orderconfirm
中是否有任何日期更改指示器?您是否能够在本地SQL Server上启用CDC?