哪个效率高一些?

hongyan80 2004-12-10 04:03:39
<1>select A.* from A, B WHERE A.ID=B.ID AND B.ZT=3
<2>select * FROM A WHERE A.ID IN (SELECT ID FROM B WHERE ZT=3)
<3>select A.* FROM A, (SELECT ID FROM B WHERE ZT=3) C WHERE A.ID=C.ID
<1>,<2>,<3>哪个效率高些呢?还能不能写出效率更高的而且功能不变的SQL语句?
...全文
165 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
t4423an 2004-12-11
  • 打赏
  • 举报
回复
有. 数据库原理上面说了,它的动作过程,以及性能优化的问题. 你可以去查查
hongyan80 2004-12-11
  • 打赏
  • 举报
回复
有没有人能从理论上说明一下效率高的原因?
calisen 2004-12-10
  • 打赏
  • 举报
回复
我在十八万条的数据记录试过查询速度,应该是最快的。我还没有想到过快过他的方法。
hongyan80 2004-12-10
  • 打赏
  • 举报
回复
<1>用的可能最多,但它一定效率最高吗?
calisen 2004-12-10
  • 打赏
  • 举报
回复
select A.* from a where exists(select 1 from b where a.id=b.id and b.zt = 3)

这样写应该是最快的。你可以在查询分析器中执行并看他们运行的时间。
hongyan80 2004-12-10
  • 打赏
  • 举报
回复
他俩的意思刚好相反,怎么都很对呢
syilo 2004-12-10
  • 打赏
  • 举报
回复
我不是什么高手
我认为t4423an(木精灵) 和 vinsonshen(猪骨褒咸鱼->味道没得顶)
说的都很对
vinsonshen 2004-12-10
  • 打赏
  • 举报
回复
2<3<1
t4423an 2004-12-10
  • 打赏
  • 举报
回复
1)= a*b 选择3
2)= a 匹配 (b选3的集)
3)=1)

2>效率应该要高一点吧
我也很想知道
期待高手指点
didoleo 2004-12-10
  • 打赏
  • 举报
回复
这样行不?没试过
SELECT A.* FROM A WHERE EXISTS (SELECT ZT FROM B WHERE ID=A.ID AND ZT=3)
hongyan80 2004-12-10
  • 打赏
  • 举报
回复
索引是按ID建的,请大家说的详细点
vinsonshen 2004-12-10
  • 打赏
  • 举报
回复
呵呵,这个很难说,因为不知道你的索引建立是怎样的
good2speed 2004-12-10
  • 打赏
  • 举报
回复
<1>select A.* from A, B WHERE A.ID=B.ID AND B.ZT=3
Frewin 2004-12-10
  • 打赏
  • 举报
回复
1效率最高。

34,590

社区成员

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

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