Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Sql联接顺序是否会影响性能?

Sql联接顺序是否会影响性能?
EN

Stack Overflow用户
提问于 2013-05-03 14:07:03
回答 6查看 50.6K关注 0票数 55

当我遇到这个查询时,我正在整理一些sql语句:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT 
        jm.IMEI ,
        jm.MaxSpeedKM ,
        jm.MaxAccel ,
        jm.MaxDeccel ,
        jm.JourneyMaxLeft ,
        jm.JourneyMaxRight ,
        jm.DistanceKM ,
        jm.IdleTimeSeconds ,
        jm.WebUserJourneyId ,
        jm.lifetime_odo_metres ,
        jm.[Descriptor]
FROM    dbo.Reporting_WebUsers AS wu WITH (NOLOCK)
        INNER JOIN dbo.Reporting_JourneyMaster90 AS jm WITH (NOLOCK) ON wu.WebUsersId = jm.WebUsersId
        INNER JOIN dbo.Reporting_Journeys AS j WITH (NOLOCK) ON jm.WebUserJourneyId = j.WebUserJourneyId
WHERE   ( wu.isActive = 1 )
        AND ( j.JourneyDuration > 2 )
        AND ( j.JourneyDuration < 1000 )
        AND ( j.JourneyDistance > 0 )

我的问题是,对于上面的查询,连接的顺序是否会对性能产生影响

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM dbo.Reporting_JourneyMaster90 AS jm

然后将其他两个表连接到那个表中

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-05-03 14:18:36

不是,按顺序连接在优化过程中会发生变化。

唯一需要注意的是选项FORCE ORDER,它将强制连接按照您指定的顺序进行。

票数 40
EN

Stack Overflow用户

发布于 2014-01-09 12:52:27

SQL2008R2服务器中的联接顺序无疑会影响查询性能,特别是在有大量表联接且where子句应用于多个表的查询中。

尽管在优化过程中连接顺序发生了变化,但优化器并不会尝试所有可能的连接顺序。当它找到它认为可行的解决方案时,它就会停止,因为优化的行为使用了宝贵的资源。

我们已经看到,仅仅通过改变连接表达式的顺序,性能就像狗一样的查询(1分钟+执行时间)下降到亚秒级的性能。但是,请注意,这些查询包含12到20个连接和几个表上的where子句。

诀窍是设置您的顺序,以帮助查询优化器找出什么是有意义的。您可以使用Force Order,但这可能太严格了。尽量确保您的联接顺序从表开始,在这些表中,where子句将最大程度地减少数据。

票数 52
EN

Stack Overflow用户

发布于 2014-11-15 16:48:46

我有一个明确的内部连接影响性能的例子。它是两个表之间的简单连接。一个有50+百万条记录,另一个有2,000条记录。如果我从较小的表中选择并加入较大的表,则需要5+分钟。

如果我从较大的表中选择并加入较小的表,则需要2分30秒。

这是针对SQL Server 2012的。

对我来说,这是违反直觉的,因为我在初始查询中使用的是最大的数据集。

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

https://stackoverflow.com/questions/16360860

复制
相关文章
使用动态IP是否会影响网络
今天我们要谈论的话题是关于动态IP和网络的关系。也许有些小伙伴对这个概念还比较陌生,但别担心,我会简单明了的给你理清楚。让我们一起看看动态IP到底能否影响到网络。
华科云商小徐
2023/08/23
3870
SQL语句汇总(终篇)—— 表联接与联接查询
既然是最后一篇那就不能只列出些干枯的标准语句,更何况表联接也是SQL中较难的部分,所以此次搭配题目来详细阐述表联接。
_DIY
2020/05/29
1.4K0
SQL语句汇总(终篇)—— 表联接与联接查询
编写 SQL 的排除联接
有两个表,就叫源表和目标表吧。它们有一个相同的字段,通过该字段可以把源表和目标表关联在一起,我们希望从源表中检索到的记录里的关联字段的值没有存在目标表中。举个例子,源表 dept,目标表 emp,获取 dept 表中部门编号不在 emp 表中的记录。在检查两张表的数据后,我们发现 emp 表中没有部门编号 40 的数据。
白日梦想家
2020/07/20
1.2K0
编写 SQL 的排除联接
MySQL 用 limit 为什么会影响性能?
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
java思维导图
2021/11/10
1.1K0
MySQL 用 limit 为什么会影响性能?
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
肉眼品世界
2021/09/27
1.6K0
MySQL 用 limit 为什么会影响性能?
MySQL 用 limit 为什么会影响性能?
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
Java技术栈
2019/11/12
1.2K0
MySQL 用 limit 为什么会影响性能?
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
Spark学习技巧
2022/01/13
1.2K0
MySQL 用 limit 为什么会影响性能?
为什么MySQL 用 limit会影响性能?
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
小冷coding
2023/05/24
6410
为什么MySQL 用 limit会影响性能?
MySQL 用 limit 为什么会影响性能
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
用户4283147
2022/10/27
1.1K0
MySQL 用 limit 为什么会影响性能
try - catch 语句真的会影响性能吗?
不知道从何时起,传出了这么一句话:Java中使用try catch 会严重影响性能。然而,事实真的如此么?我们对try catch 应该畏之如猛虎么? 一、JVM 异常处理逻辑 Java 程序中显式抛出异常由athrow指令支持,除了通过 throw 主动抛出异常外,JVM规范中还规定了许多运行时异常会在检测到异常状况时自动抛出(效果等同athrow), 例如除数为0时就会自动抛出异常,以及大名鼎鼎的 NullPointerException 。 还需要注意的是,JVM 中 异常处理的catch语句不再由字
程序猿DD
2022/08/29
1K0
try - catch 语句真的会影响性能吗?
MySQL 用 limit 为什么会影响性能?
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
码农架构
2021/10/27
2K0
MySQL 用 limit 为什么会影响性能?
我们知道,当limit offset rows中的offset很大时,会出现效率问题:
猿天地
2021/10/13
1.3K0
MySQL 用 limit 为什么会影响性能?
SQL隐式联接(箭头语法)
InterSystems SQL提供了一个特殊的–>运算符,作为从相关表中获取值的快捷方式,而在某些常见情况下无需指定显式的JOIN即可。可以使用此箭头语法代替显式联接语法,也可以将其与显式联接语法结合使用。箭头语法执行左外部联接。
用户7741497
2022/06/06
8110
MySQL 用 limit 分页为什么会影响性能?
原文链接:https://dwz.cn/K1Q1cePW
业余草
2019/11/18
1.4K0
为什么操作DOM会影响WEB应用的性能?
面试官经常会问你:“平时工作中,你怎么优化自己应用的性能?” 你回答如下:“我平时遵循以下几条原则来优化我的项目、以提高性能,主要有:”
xing.org1^
2019/08/25
2K0
SQL Join 中,表位置对性能的影响
其实还真不是。两表的 Join, Internals(内幕)还是有很多可以讨论。比如 join 算法,Predicate 优化,Join 顺序对性能的影响,或者 DOP(degree of parallel).
Lenis
2020/07/14
1.8K0
SQL Join 中,表位置对性能的影响
其实还真不是。两表的 Join, Internals(内幕)还是有很多可以讨论。比如 join 算法,Predicate 优化,Join 顺序对性能的影响,或者 DOP(degree of parallel).
用户1564362
2020/07/15
1.5K0
SQL Join 中,表位置对性能的影响
HTTPS 握手会影响性能吗?废话,肯定会
由裸数据传输的 HTTP 协议转成加密数据传输的 HTTPS 协议,给应用数据套了个「保护伞」,提高安全性的同时也带来了性能消耗。
小林coding
2022/10/27
1.2K0
HTTPS 握手会影响性能吗?废话,肯定会
灵魂拷问:Kubernetes会影响数据库性能吗?
本篇文章着眼于 Linux 页面大小对数据库性能的影响,以及如何优化数据库 Kubernetes 节点。
我的小碗汤
2023/03/19
1.3K0
灵魂拷问:Kubernetes会影响数据库性能吗?
【T-SQL基础】02.联接查询
概述: 本系列【T-SQL基础】主要是针对T-SQL基础的总结。 本篇主要是对多表查询基础的总结。 查询语句的FROM字句在逻辑上是第一条要处理的字句,在FROM字句内可以用表运算符对输入的表进行操作
悟空聊架构
2018/05/18
3K0

相似问题

Oracle SQL - FROM子句中的联接顺序是否会影响性能优化?

34

IPTable参数顺序是否会影响性能?

15

MATLAB: If语句顺序是否会影响性能

12

联接顺序和SQL中的哪个位置会影响性能吗?

24

递归函数参数顺序是否会影响性能

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文