更新查询取决于子查询的结果执行即使经过很长时间也不会停止

时间:2014-08-06 18:20:37

标签: sql sql-server

以下是我的查询无法在Executed表获取锁定时更新执行不会停止一小时。

update Employees 
set Status = 'Close'
where statusid IN (select statusid 
                from MyView 
                where DownloadedDate ='2014-07-27 00:00:00.000') 

此处员工包含3,00,000条记录和      子查询返回1,50,000 Empid

我用各种方式尝试了2天但无法解决 即使使用光标也无法正常工作

1 个答案:

答案 0 :(得分:0)

尝试使用exists而不是:

update Employees 
set Status = 'Close'
where exists(select 1 
                from MyView 
                where DownloadedDate ='2014-07-27 00:00:00.000'
                      and MyView.statusid = Employees.statusid) 

如果它不起作用,你应该创建一个表而不是视图,以找出该视图有任何问题吗?

使用查询计划分析步骤和成本。 reference