一个主表,会关联很多子表,主表只存放外联部的主键ID,现在这些字段需要关联查询内容,并且显示出来。
一般为了方便会这样查询,例如:
SELECT 主表.COLUM_A
,主表.COLUM_B
,(SELECT TOP 1 关联表1.COLUM_A FROM 关联表1 WHERE 主键=外键 ...) AS 新字段1
,(SELECT TOP 1 关联表2.COLUM_A FROM 关联表2 WHERE 主键=外键 ...) AS 新字段2
,(SELECT TOP 1 关联表3.COLUM_A FROM 关联表2 WHERE 主键=外键 ...) AS 新字段3
...
FROM 主表
....
这样查询发现速度很慢,有什么其他替换或优化方法?
看执行计划,加索引
既然都有主表跟子表了,就只能用连接查询的方式。所谓的很慢到底有多慢,以至于你接受不了。想那么多干什么?
加索引或者视图吧。