Вы можете попытаться создать индекс для этой таблицы:
create index idx_test on RangeChange(StoreID, ItemNo, Reject, ChangeDateEnd) where reject = 0
- когда вы не используете SQL Enterprise, избавьтесь от условия where в индексе и поместите столбец отклонения в качестве включенного столбца в индексе.
- убедитесь, что у вас уже есть кластеризованный индекс (если вы не можете создать индекс выше как кластеризованный)
- я бы написал запрос как объединение:
update F set
F.PartOfPairRC = 1
from RangeChange F
join RangeChange S
on F.StoreID = S.StoreID
and F.ItemNo = S.ItemNo
and F.Reject = S.Reject
and F.ChangeDateEnd = S.ChangeDate - 1
where F.Reject=0 and S.Reject = 0