当前位置: 首页 > 面试题库 >

sql join语句中的表顺序是否有任何意义

林丁雷
2023-03-14
问题内容

html" target="_blank">sql join语句中表的顺序是否有任何意义。例如

SELECT dept_name, emp_name 
FROM   Employee 
INNER JOIN Department ON Employee.dept_id = Department.dept_id

SELECT dept_name, emp_name 
FROM Department 
INNER JOIN Employee  ON Employee.dept_id = Department.dept_id

表格顺序是否有性能优势?


问题答案:

不,没有。

大多数(如果不是全部)DBMS使用基于成本的优化器。您指定语句的顺序不会影响执行速度。

Oracle SQL基于成本的优化

Oracle的基于成本的SQL优化器(CBO)是Oracle的一种非常复杂的组件,它控制着每个Oracle查询的执行。CBO已经发展成为世界上最复杂的软件组件之一,它具有评估任何SQL语句并为该语句生成“最佳”执行计划的艰巨工作。

您的两个语句将生成 相同的执行计划
,因此具有相同的性能特征。请注意,费用将基于可用的统计数据。更新的统计信息对于优化器能够生成最有效的执行计划非常重要。



 类似资料:
  • 问题内容: 函数内部的这两个语句之间有区别吗? 还有这个? 前者周围有括号。 问题答案: 从C 14开始,它们经常是。C 14增加了一种边缘情况,其中返回值周围的括号可能会改变语义。此代码段显示了要声明的两个函数。唯一的区别是在返回值两边加上括号。 在第一个中func1返回int,在第二个中func1返回int&。语义上的差异与周围的括号直接相关。 autoC 11中引入了最新形式的说明符。在C

  • 问题内容: bash中是否有“ goto”语句?我知道这被认为是不好的做法,但是我需要特别的“ goto”。 问题答案: 不,那里没有; 有关 确实 存在的控制结构的信息,请参见《 Bash参考手册 》中的第3.2.4节“复合命令” 。特别要注意的是,和的提及不如灵活,但是在Bash中比某些语言更灵活,并且可以帮助您实现所需的目标。(无论您想要什么……。) __

  • 问题内容: 我在我的项目中有一个textarea,用户可以在其中保存SQL查询,但要求之一是检查此查询是否有效 例子 如果用户输入类似: 这应该返回false并显示一条错误消息,提示您不必给出任何原因 主要是查询将只是语句 注意, 我现在不想使用任何服务器端 问题 是否有人知道具有此功能或类似功能的javascript / jquery库或插件 我有谷歌这个,它没有显示任何东西 谢谢 问题答案:

  • 问题内容: Java是否具有在hibernate状态下打开会话时可以使用的using语句? 在C#中,它类似于: 因此,对象超出范围并自动关闭。 问题答案: Java 7引入了自动资源块管理,该功能将该功能引入了Java平台。Java的早期版本没有任何相似之处。 例如,您可以使用以以下方式实现的任何变量: 由流实现的Java 接口自动扩展,因此您可以像在C#块中使用流一样使用块中的流。这等效于C#

  • 问题内容: 想知道。排序导入语句的正确方法是哪种?还有哪个更具可读性? 喜欢, 外部类(如),然后是内部包 类。 只是按字母顺序 提前致谢。 问题答案: 从Java编程风格指南中 import语句必须在package语句之后。import语句应首先使用最基本的软件包进行排序,并与相关的软件包分组在一起,并且各组之间应留空行。 ..... ..... 导入语句的位置由Java语言强制执行。通过排序,

  • 我正在检查变量“auth”是否设置在\u POST或\u GET上,并需要两个不同的操作。我已经设法让它与if/else一起工作了,但它看起来很丑陋,很浪费? 如果未设置POST,请选中GET。如果设置了GET,则不执行任何操作 这里有一种全新的方法吗?像检查两者一样,如果两者都没有设置,则转到重定向,如果设置了一个,则继续页面? ^如果这些是可以接受的陈述,“什么都不做”部分应该是什么?