Я пытаюсь выполнить запрос на обновление, который обновляет одну таблицу на основе строк, найденных в другой таблице, где определенное значение существует где-либо в одном из значений столбца удаленной таблицы. Я использую запрос:
update
c
set
LastStep = @StepNumber,
LastDate = pv.Created
from
@Conversions c
inner join PageViews pv on c.SessionID = pv.SessionID
where
c.GoalName = @GoalName AND
pv.Created > c.LastDate AND
charindex(@MatchValue, pv.PageUrl) > 0;
В тестовой базе данных с 50 000 строк в таблице PageViews этот единственный запрос вызывает чуть более 1 миллиона операций чтения в соответствии с профилировщиком SQL и занимает 1 минуту и 14 секунд. Есть идеи почему?