【问题标题】:How are inner and left and right outer joins implemented in SQL Server?SQL Server 中的内连接和左外连接和右外连接是如何实现的?
【发布时间】:2023-04-04 12:59:01
【问题描述】:

我正在寻找对算法的高级理解,以便我能够大致了解 SQL-Server 执行联接的操作。随意简洁,我不是在寻找极其细节的东西。促使我了解如何更好地实现连接的是我刚刚发布的this question 背后的场景。我觉得它们最终是两个独立的问题,这就是我没有将它们结合起来的原因。

谢谢!

【问题讨论】:

    标签: sql-server join


    【解决方案1】:

    编辑(2020-03-11):这个 9 岁以上的答案中的链接今天都无效。我会删除答案,但 SO 不会让我这样做,因为它在实际有用时被接受了。

    原答案:

    这里有一些读物可以帮助您入门。

    【讨论】:

      【解决方案2】:

      老实说,如果您对这种详细程度感兴趣,我建议您阅读 Microsoft SQL Server 2008 Internals.

      并学习阅读执行计划。 SQL Server 有一个非常好的优化引擎。它并不总是按照我们人类所期望的方式做事,甚至对于在我们看来相似的两个查询的方式也不相同。

      【讨论】:

      • 我觉得 SQL Internals 这本书有点烂,这里有一些更好的免费的:red-gate.com/our-company/about/book-store
      • @Andomar,我没有看到该列表,但 Red-Gate 是一家我使用并喜爱其产品的公司,我肯定会下载其中的一些!感谢您的链接。
      【解决方案3】:

      SQL Server 可以从多种不同的连接中进行选择:最常见的连接是合并、循环和散列。看到这个KB article。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-11
        • 1970-01-01
        • 2014-02-24
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        相关资源
        最近更新 更多