以下查询位于存储过程中。它在沙发上顺利运行。今天突然它挂了刺。当我选择删除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
答案 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>)