INNER JOIN 与 INNER JOIN (SELECT . FROM)

2024-05-03

同一查询的这两个版本之间的性能有什么区别吗?

--Version 1
SELECT p.Name, s.OrderQty
FROM Product p
INNER JOIN SalesOrderDetail s on p.ProductID = s.ProductID

--Version 2
SELECT p.Name, s.OrderQty
FROM Product p
INNER JOIN (SELECT ProductID, OrderQty FROM SalesOrderDetail) s on p.ProductID = s.ProductID

我听说(DBA)说版本 2 更快,因为它在内部 SELECT 语句中仅获取查询所需的列。但这似乎没有意义,因为查询性能(据我所知)基于受影响的行数和返回的最终列列表。

两者的查询计划是相同的,所以我猜两者之间没有任何区别。

我对么?


你是对的。您做了完全正确的事情,检查查询计划而不是试图事后猜测优化器。 :-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

INNER JOIN 与 INNER JOIN (SELECT . FROM) 的相关文章

  • 使用 JSON 参数的 Postgres 批量 INSERT 函数

    这是一个plpgsqlpostgres 的函数9 6 它试图INSERT一行 如果插入没有失败 由于违反键约束 那么它会运行更多命令 CREATE FUNCTION foo int text text RETURNS void AS BEG
  • 插入触发器最终在分区表中插入重复行

    我有一个分区表 我认为 适当的INSERT触发器和一些限制 不知何故 INSERT语句为每个语句插入 2 行INSERT 一个用于父分区 一个用于相应的分区 设置简要如下 CREATE TABLE foo id SERIAL NOT NUL
  • 存储过程和权限 - EXECUTE 就足够了吗?

    我有一个 SQL Server 2008 数据库 其中对基础表的所有访问都是通过存储过程完成的 一些存储过程只是从表中选择记录 而其他存储过程则进行 UPDATE INSERT 和 DELETE 如果存储过程更新表 执行存储过程的用户是否也
  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • Spark.read 在 Databricks 中给出 KrbException

    我正在尝试从 databricks 笔记本连接到 SQL 数据库 以下是我的代码 jdbcDF spark read format com microsoft sqlserver jdbc spark option url jdbc sql
  • Amazon RDS for SQL Server 是否支持 SSIS?

    从谷歌搜索中读到一些相互矛盾的答案 不确定答案是是 否还是可能 我觉得读的时候已经很清楚了this http docs aws amazon com AmazonRDS latest UserGuide CHAP SQLServer htm
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下
  • MySQL 查询到 CSV [重复]

    这个问题在这里已经有答案了 有没有一种简单的方法来运行MySQL查询来自linux命令行并以csv格式输出结果 这就是我现在正在做的事情 mysql u uid ppwd D dbname lt lt EOQ sed e s g tee l
  • 实体框架 - SQL Server 2005 - IIS 服务器日期时间问题

    我正在使用 MVC3 和实体框架 在我的应用程序中 我需要通过 EF 调用 SQL Server 2005 中的存储过程来根据以下内容搜索一些数据datetime传递的参数 在当地环境中一切似乎都运行良好 但是将其托管到 IIS 后 我在尝
  • 在 C#.NET 应用程序中使用 SQL Server 时间数据类型?

    如何使用 SQLtimeSQL Server 2008 中 C NET 中引入的数据类型 我一直在努力让它发挥作用 但没有成功 这是一个MSDN 文章 http msdn microsoft com en us library bb6751
  • 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

    我目前的观点是否定的 更喜欢 Transact SQL 存储过程 因为它们是重量更轻且 可能 性能更高的选项 而 CLR 过程允许开发人员进行各种恶作剧 然而最近我需要调试一些写得非常糟糕的 TSQL 存储过程 像往常一样 我发现许多问题是
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • 执行带有 EXCEPTION 的 PostgreSQL 查询会导致两条不同的错误消息

    我有一个 PostgreSQL 查询 其中包含事务和列重复时的异常 BEGIN ALTER TABLE public cars ADD COLUMN top speed text EXCEPTION WHEN duplicate colum
  • 将表数据从一个 SQL Server 导出到另一台 SQL Server

    我有两个 SQL Server 都是 2005 版本 我想将多个表从一个表迁移到另一个表 我努力了 在源服务器上 我右键单击数据库 选择Tasks Generate scripts 问题是在下面Table View options没有Scr
  • 临时表是线程安全的吗?

    我正在使用 SQL Server 2000 它的许多存储过程广泛使用临时表 数据库的流量很大 我担心创建和删除临时表的线程安全性 假设我有一个存储过程 它创建了一些临时表 它甚至可以将临时表连接到其他临时表等 并且还可以说两个用户同时执行存
  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Oracle 行的多个列上使用透视

    我在 Oracle 表中有以下示例数据 tab1 我正在尝试将行转换为列 我知道如何在某一列上使用 Oracle 数据透视表 但是否可以将其应用于多个列 样本数据 Type weight height A 50 10 A 60 12 B 4
  • VB6+SQL-Server:如何使用 ADODB.Command 执行带有命名参数的查询?

    我一直在尝试使用 ADODB Command 执行参数化查询 我知道我可以使用 对于参数 但我的查询相当大 我真的不想跟踪参数的确切顺序 我尝试了类似以下的操作 objCmd CommandType adCmdText objCmd Com

随机推荐

  • 如何使用 nuxt 和 @vue/composition-api 提供/注入 Vue 根实例?

    我正在尝试使用 vue apollo 可组合 https v4 apollo vuejs org guide composable setup html 1 install vue apollo composable与我的 Nuxt Ts
  • 找不到我的绑定的 inflate 方法(使用 Android,数据绑定。)

    我正在使用数据绑定来绑定 Android 应用程序中的布局 我已经设置了布局 my custom xml 并生成了绑定类 MyCustomBinding 但 Android Studio 似乎没有立即找到 Binding 类的 inflat
  • 滚动 swiftUI 列表时,未调用单元格的任务修改器。怎么修?

    我写了一个异步图像视图 with swiftui 并在列表单元格中使用 AsyncImgView 使用任务修饰符在 Img 出现时从缓存或网络下载 Img 在 iOS16 之前一切正常 但在iOS16我发现当我滚动列表新细胞的AsyncIm
  • OTP(令牌)应自动从消息中读取

    我正在开发一个 Android 应用程序 其中服务器发送 OTP 用户需要在应用程序中输入此 OTP 才能注册我的应用程序 我想要的是 我的应用程序应该能够自动读取服务器发送的 OTP 我怎样才能实现这个目标 在这方面的任何帮助或指导将不胜
  • 在 ng-repeat 中使用 bootstrap popover

    我有一个引导程序弹出窗口 它在有角度的外部工作ng repeat a href class tt1 Hover over me a 一旦我在 ng repeat 中使用它 它就会停止工作 我在角度控制器构造函数中初始化弹出窗口 tt1 po
  • Ansible 循环直到条件匹配。

    我想进行一系列 API 调用 每次调用后检查结果中的特定参数 如果它大于特定值 则将其保存在寄存器中并继续进一步执行剧本 基本上 我正在对 RHEV 进行 API 调用来检查存储域 然后我想检查存储域是否有足够的空间 如果有 则将该存储域i
  • 如何在 Visual Studio 中打开 .rdl 文件?

    我有一个 rdl 文件 需要在 Visual Studio 中打开 当我尝试打开该文件时 我得到了一个 XML 文件 但是 我无法看到设计器格式 我不知道使用哪个版本的 Visual Studio 创建此 rdl 文件 是否可以在 Visu
  • 如何引导用户为我的应用程序启用辅助功能服务

    我知道不可能以编程方式启用应用程序的辅助功能服务 因此我想将用户引导至此屏幕 System settings gt Accessibility gt app name gt enable disable screen 那可能吗 您可以将它们
  • Java中使用JsonPath解析JSON

    我是 Json Path 的新手 我已将 json path 0 8 0 jar 添加到我的 Eclipse 构建路径中 我从以下位置复制了 JSON http code google com p json path http code g
  • Logback 附加程序将消息作为 HTTP 消息发布

    根据我的要求 我只想将 HTTP 消息发布到另一端 该消息由org slf4j LoggerFactory getLogger 以下 JSON 字符串记录在INFO level studentName My Name Deratment C
  • SwiftUI 检测按下删除按钮

    我正在使用 SwiftUI 但我正在编写自己的自定义文本掩码 但当用户按 删除 键时我需要删除 我正在使用onChange方法 但它不检测何时按下特殊键 目前我正在使用 TextField self placeholder text sel
  • 您可以将 window.location 设置为带有 chrome:// 的页面吗?

    我正在尝试将用户重定向到chrome settings 或者这实际上可以是带有chrome 前缀 但是window location chrome settings or window location chrome crash 不工作 有
  • 参数化单元测试套件

    我正在尝试设置一些参数化测试套件 不幸的是到目前为止还没有任何运气 我有两组参数 我想使用所有可能的组合运行多个测试用例 它们位于不同的类中 我尝试使用 JUnit4 来完成此操作 但无法正确设置 这将是我的基本想法 TestSuite1
  • 使用CefSharp捕获资源响应数据(正文)

    我正在尝试使用 CefSharp 访问 URL 并捕获在加载给定页面期间检索到的特定资源 大概作为每个资源的流或字节数组 CefSharp提供了IRequestHandler接口 您可以创建一个实现此接口的类来响应请求 响应事件 但它不以任
  • 为什么“git diff”在“git add”之后报告没有文件更改

    这是为什么git diff认为没有变化 即使git status将它们报告为modified git status On branch master Your branch is ahead of origin master by 2 co
  • ES6 模块与 HTML 导入

    HTML 导入 http www w3 org TR 2013 WD html imports 20130514 是的一部分网络组件 http www w3 org TR components intro 规范并提供一种处理 Web 依赖性
  • 有没有一种简单的方法可以知道哪些文件将在下一个“git pull”中更新?

    我想知道如果我执行 git pull 哪些文件将被更新 以及希望发生的更改 is git stash git fetch git diff origin master git stash apply 答案 See here http ker
  • 所需的最少攻击次数[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我们有一个二维的细胞网格 每个细胞可能包含也可能不包含怪物 我们得到了包含怪物的单元格列表 在一次攻击中 我们可以杀死所有排成一排或一列的
  • 用 pandas 计算前滚平均值

    我需要计算数据框中的一些前滚平均值 但真的不知道从哪里开始 我知道如果我想提前 10 天选择一个小区 我会这么做df shift 10 但我想做的是计算提前 10 到 15 天之间的平均值 所以我的想法是df rolling 10 15 m
  • INNER JOIN 与 INNER JOIN (SELECT . FROM)

    同一查询的这两个版本之间的性能有什么区别吗 Version 1 SELECT p Name s OrderQty FROM Product p INNER JOIN SalesOrderDetail s on p ProductID s P