Обновленный вывод вставлен # запрос запроса висит на продукт - PullRequest
0 голосов
/ 18 мая 2018

Ниже запрос находится внутри хранимой процедуры.На софе работает плавно.Сегодня неожиданно повис на прод.Когда я выбираю удаление UPDATE, он возвращает ноль записей.

UPDATE STG SET STATUS = 'D' 
                    OUTPUT INSERTED.TRACKING_ID INTO #TEMP (TID)
                    FROM STAGE_TABLE STG(NOLOCK) 
                    INNER JOIN STAGE_PRE_ACC  PRE(NOLOCK)
                    ON PRE.ID=STG.ID AND 
PRE.CID=STG.CID 
                    WHERE PRE.STATUS = 'D'
                    AND STG.ETLNBR < PRE.ETLNBR

1 Ответ

0 голосов
/ 18 мая 2018

Данные могли измениться, что сделало исходный план неэффективным.Попробуйте очистить его из кэша планов:

SELECT qtext.text,qstats.plan_handle
FROM sys.dm_exec_query_stats AS qstats
    CROSS APPLY sys.dm_exec_sql_text(qstats.plan_handle) as qtext
where text like 'UPDATE STG SET STATUS = ''D''%';

Получите правильный дескриптор плана и очистите его:

DBCC FREEPROCCACHE (<put plan handle here>)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...