首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加入,存在还是在哪一个更好?关于SQL的几个问题

加入,存在还是在哪一个更好?关于SQL的几个问题
EN

Stack Overflow用户
提问于 2010-01-07 11:42:20
回答 8查看 4.5K关注 0票数 3

我对SQL没有几个问题。

  1. 如何分析查询的性能?在查询中,应该使用MSSQL 2005/2008?
  2. What内置的任何软件特性来代替in,以便性能更好?例:

从enquiry_courses WHERE enquiry_id IN中选择*(从enquiry_id = '4cd3420a16dbd61c6af58f6199ac00f1‘)

  • 中选择更好的

  • JOINSEXISTSIN (从enquiry_id的角度来看)

感谢你的评论/帮助..。

EN

回答 8

Stack Overflow用户

发布于 2010-01-07 11:46:51

  1. 使用,并包括Actual Execution PlanSET STATISTICS TIMESET STATISTICS IO
  2. 在这方面相当于一个JOIN,但是重写可能无关紧要。一个猜测可能是您需要enquiry_courses.enquiry_idenquiries.session_id上的索引来改进查询enquiries.session_id
票数 2
EN

Stack Overflow用户

发布于 2010-01-07 11:47:50

MSSQL通常附带一个内置的gui工具,称为Query,它描述如何执行查询。

2)您可以将其重写为:

代码语言:javascript
复制
SELECT * 
FROM enquiry_courses ec 
WHERE EXISTS (select 1 FROM enquiries e 
              WHERE e.enquiry_id = ec.enquiry_id 
              and e.session_id ='4cd3420a16dbd61c6af58f6199ac00f1' )

但我不敢相信,在现代的RDBMS中,它的性能会有任何不同。

票数 0
EN

Stack Overflow用户

发布于 2010-01-07 12:56:13

3:我希望数据库引擎将IN或EXIST子句简化为JOIN,因此性能不应该有差异。我不知道SQL Server,但在Oracle中,您可以通过检查执行计划来验证这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2019958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档