【问题标题】:SQL server sub queries vs. table joinsSQL Server 子查询与表连接
【发布时间】:2010-11-10 02:40:08
【问题描述】:

我听说表连接通常比子查询更有效,这是真的吗?如果 SQL Server 2005 和/或 2008 认为它会更好,它会将子查询转换为表连接吗?(考虑到它使用声明性语言而不是命令性语言)。

无论我使用的表格有多大,我都希望养成以最佳方式进行操作的习惯。这意味着,如果大多数时候 SQL Server 可能会将我的代码转换为 Join,我只需将其免于执行这项工作。

注意:子查询编写的代码似乎更少,但我认为连接并不比编写子查询更难可视化。

【问题讨论】:

    标签: sql-server-2005 tsql sql-server-2008


    【解决方案1】:

    最好检查个别案例的执行计划。这将提示您了解其内部操作。尝试几种不同的查询方式并分析执行计划。

    【讨论】:

    • 我认为这是个好主意。从您的回复看来,无论哪种方式都不一定是坏事。
    • @nick:事实上,这取决于数据、表结构和预期输出。
    • @OMG Ponies:谢谢,我会分析执行计划。附:好听的名字。
    • 确实总是最好检查计划,尽管我通常发现派生表或子查询的效率低于先将数据放入某种表中,尤其是当您处理数以千万计的数据时行。
    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 2018-09-25
    • 2013-04-26
    • 2021-10-03
    • 1970-01-01
    • 2011-04-20
    相关资源
    最近更新 更多