用地址表举例 E_address 查询指定@ID 对应的所有子级 地址信息
ID ParentID AddressName
1 0 中国
2 1 北京
3 1 上海
4 1 江苏
5 4 南京
.......
大概3000多条数据
如果是查询 @ID=2 速度很快
如果@ID=1 那么要很长时间
有什么办法可以优化下啊
declare @level int
Set @level=0
WITH temp
as
(
SELECT *,@level as Level FROM E_address WHERE ID=@ID
UNION ALL SELECT e.*,level+1 FROM E_address e INNER JOIN temp t ON
t.ID=e.ParentID
)
select * from temp
可不可以改进下select语句?写成子句嵌套试试,我感觉是union all拖了速度。