子查询求和并更新update
update TableA set usd = (select sum(usd) from TableA_m
where TableA.id = TableA.id)
where TableA.id=@id
谁能解释下,这个写法是否会很慢,TableA_m表为百万数据,id没有索引。数据库总是在这句堵塞.TableA_m
是频繁使用的表。球解. 子查询
[解决办法]
UPDATE TableA
SET usd = ( SELECT SUM(usd)
FROM TableA_m
WHERE TableA.id = TableA.id --id上没有索引连接的处理就会很慢
)
WHERE TableA.id = @id --这处也是,直接就表扫描了。
--快添加上索引,比对一下执行计划,lz就能看出效果了