我正在尝试运行一个更新查询,该查询根据在另一个表中找到的行更新一个表,其中某个特定值存在于其中一个远程表的列值中。我正在使用的查询是:
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;
在PageViews表中包含50,000行的测试数据库中,根据SQL分析器,此单个查询导致的读取次数超过100万次,耗时1分14秒。有什么想法吗?
答案 0 :(得分:1)
以下列是否有索引? pv.SessionID,pv.created
你看过生成的执行计划了吗?