Я пытаюсь понять, как оптимизировать / улучшить следующее: на виртуальной машине, размещенной в MS Azure, и базе данных, также размещенной в MS Azure.Помимо экземпляра, размещенного в MS Azure, есть еще один экземпляр (локальный), который имеет выделенную базу данных для интеграции между двумя программными приложениями, и между этими двумя экземплярами есть связанный сервер.
В последнее время я заметил, что удаленное сканирование занимает до 100%, вызывая низкую производительность некоторых хранимых процедур, которые обновляют базу данных, размещенную в Azure.
Вот как выглядит план выполнения:
Часть хранимой процедуры, выполняемой для базы данных из локального экземпляра, которая выполняет некоторыеобновления на связанном сервере выглядят следующим образом:
UPDATE docl
SET docl.udfvalue1=WMSC.QtyReceptioned,
docl.udfvalue2=WMSC.QtySent,
docl.Stringfield1=WMSC.WAREHOUSE
FROM MyLinkedServer.DataBase.dbo.DocLines docl
INNER JOIN #WMS_Confirmed WMSC on docl.gid=WMSC.GID
UPDATE es
SET es.ADFLAG3 = 1
FROM MyLinkedServer.Database.dbo.DocHeader es
WHERE es.OrderDate>'2018-01-01' -- OrderDate is one of the indexes on `DocHeader` table
AND EXISTS (SELECT 1
FROM #WMS_Confirmed WMSC
WHERE es.gid = WMSC.fDocGID
);
То, что я нашел в Интернете, например, включение Dynamic Parameters
и NestedQueries
на провайдере связанного сервера, вообще не помогло,Есть что-то еще, что мне не хватает?Спасибо