读书人

更新解决方法

发布时间: 2012-01-19 20:57:58 作者: rapoo

更新
Update FileInfo Set CancelExpert=1,CAID=1 From
(Select a.fileid,a.rev from (select Fileid,Rev from Relationfile where
Relationfile.Nodeid =26535) as a, (Select fileid,rev from Relationfile group by
fileid,rev having count(*)=1) as b where a.fileid=b.fileid and a.rev=b.rev) as c
Where fileinfo.fileid=c.fileid and fileinfo.rev=c.rev AND (FileInfo.[FILEName] like 'Part%List% '
or FileInfo.[FILEName] like '生工格% ' or FileInfo.[FILEName] like '生效率排拉% ' or
FileInfo.[FILEName] like '作指卡% ' or FileInfo.[FILEName] like '出格% ' or
FileInfo.[FILEName] like '外型% ' or FileInfo.[FILEName] like '技% ' or
FileInfo.[FILEName] like '包示意% ' or FileInfo.[FILEName] like '控制% ' or
FileInfo.[FILEName] like '查% ' or FileInfo.[FILEName] like '模具照表% ')

以上更新句更新速度很慢,更新一都至少要40多秒,我有千,如果慢,不知要到什候才更新完,
哪位高手可以忙化下句

[解决办法]
这么多的like 肯定很慢了!
可以建个临时表,把那些Like出的数据放在这里,然后根据临时表再Update
[解决办法]
是or的
[解决办法]
这样试试

Update FileInfo
Set CancelExpert=1,CAID=1
From
(select Fileid,Rev from Relationfile where
Relationfile.Nodeid =26535 group by fileid,rec having count(*)=1) as a
Where fileinfo.fileid=a.fileid
and fileinfo.rev=a.rev
AND (FileInfo.[FILEName] like 'Part%List% '
or (FileInfo.[FILEName] like '生工格% ' or FileInfo.[FILEName] like '生效率排拉% ' or
FileInfo.[FILEName] like '作指卡% ' or FileInfo.[FILEName] like '出格% ' or
FileInfo.[FILEName] like '外型% ' or FileInfo.[FILEName] like '技% ' or
FileInfo.[FILEName] like '包示意% ' or FileInfo.[FILEName] like '控制% ' or
FileInfo.[FILEName] like '查% ' or FileInfo.[FILEName] like '模具照表% '))

[解决办法]
FileInfo.[FILEName] like 'Part%List% '只有这个like影响速度,其他的不会影响,建议单独拿出来UPDATE....
[解决办法]
有两个子查询是多余的,可以整体合为一个.

感觉你where后的条件有问题,先是and,后面都是or,如果其中一个or符合的话整个where就符合了,而且两表关联条件都不起作用,应该在and后将整个or用括号括起来
[解决办法]
抱歉,更正一下,表别名用错了:
Update a Set CancelExpert=1,CAID=1 From FileInfo AS a
INNER JOIN
(select Fileid,Rev from Relationfile where Nodeid =26535
group by fileid,rev having count(*)=1) AS c
ON a.fileid=c.fileid AND a.rev=c.rev
AND (
a.[FILEName] like 'Part%List% '
or a.[FILEName] like '生工格% ' or a.[FILEName] like '生效率排拉% ' or
a.[FILEName] like '作指卡% ' or a.[FILEName] like '出格% ' or
a.[FILEName] like '外型% ' or a.[FILEName] like '技% ' or


a.[FILEName] like '包示意% ' or a.[FILEName] like '控制% ' or
a.[FILEName] like '查% ' or a.[FILEName] like '模具照表% ')

读书人网 >SQL Server

热点推荐