插入的更新输出#temp查询在prod上挂起

时间:2018-05-18 12:20:28

标签: sql-server performance

以下查询位于存储过程中。它在沙发上顺利运行。今天突然它挂了刺。当我选择删除UPDATE时,它返回ZERO记录。

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 :(得分:0)

数据可能已更改,因此原始计划效率低下。尝试从计划缓存中清除它:

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>)