请问.效率问题

igelf 2008-09-26 01:29:47
Select [user].id,profile.name
from [user] left join profile on [user].id=profile.userid
------------------------------------------------
Select [user].id,(select name from profile where userid=[user].id)as name
from [user]
上面两种哪个效率会高点.

还有如果多个哪个效率高.
Select
[user].id,
profile.name,
profile.name2
from [user] left join profile on [user].id=profile.userid
------------------------------------------------
Select
[user].id,
(select name from profile where userid=[user].id)as name ,
(select name2 from profile where userid=[user].id)as name2
from [user]


...全文
124 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
LeeeeSin 2008-09-26
  • 打赏
  • 举报
回复
当然是前者.
igelf 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 Haiwer 的回复:]
首先,第二个在一对多的时候会出错
其次,如果两个字段或者以上,前者效率高
再次,如果一个字段,自动优化后的执行计划是一样的
[/Quote]
那第二种方法可以抛弃了.反正会自动优化.
Garnett_KG 2008-09-26
  • 打赏
  • 举报
回复

好像是方法1稍好一些哎.

方法2存在报错可能(执行计划内有判断的操作),这个应该会消耗掉一些性能.

数据量不大的时候应该不明显.两者差不多.
昵称被占用了 2008-09-26
  • 打赏
  • 举报
回复
首先,第二个在一对多的时候会出错
其次,如果两个字段或者以上,前者效率高
再次,如果一个字段,自动优化后的执行计划是一样的
igelf 2008-09-26
  • 打赏
  • 举报
回复
两张表关系是一对一的.

igelf 2008-09-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dobear_0922 的回复:]
Select [user].id,profile.name
from [user] left join profile on [user].id=profile.userid
------------------------------------------------
Select [user].id,(select name from profile where userid=[user].id)as name
from [user]
上面两种哪个效率会高点.


--------------
如果一个ID对应一个NAME,下面的效率高一些,否则两个查询不等价
[/Quote]
是一个id对应一个name啊.还有如果还要查询name2 到底哪个效率高啊.
qinhl99 2008-09-26
  • 打赏
  • 举报
回复
我基本认为是前者
但是不是和user表中数据(相对 profile)多少有关系呢?得研究下
zoujp_xyz 2008-09-26
  • 打赏
  • 举报
回复
好像差不多
连接查询好点
dobear_0922 2008-09-26
  • 打赏
  • 举报
回复
Select [user].id,profile.name
from [user] left join profile on [user].id=profile.userid
------------------------------------------------
Select [user].id,(select name from profile where userid=[user].id)as name
from [user]
上面两种哪个效率会高点.


--------------
如果一个ID对应一个NAME,下面的效率高一些,否则两个查询不等价
fzcheng 2008-09-26
  • 打赏
  • 举报
回复
方法1
中国风 2008-09-26
  • 打赏
  • 举报
回复
方法1

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧