我在这里面临执行时间问题,真的很难过
UPDATE [OT]
SET AAA = 8
WHERE ID in
(
select UID from [IP] B
inner join [OT] A
on B.ADDR = A.ADDR and A.ID=B.ID
)
AND AAA= 6 ;
OT表有重复ID,count(*)
约900000行
IP表具有唯一ID,count(*)
约800000行
AAA是OT表类型的列:tinyint
select count(*) from OT where AAA=6
约150000
我不知道为什么这个查询需要1个多小时? 我的其他类似查询只需要10秒
答案 0 :(得分:0)
我会更简单地写这个:
UPDATE OT
SET AAA = 8
FROM OT
WHERE EXISTS (SELECT 1 FROM IP WHERE IP.ADDR = OT.ADDR AND IP.ID = OT.ID) AND
OT.AAA = 6 ;
为了提高性能,您需要OT(AAA)
和IP(ADDR, ID)
上的索引。