gpt4 book ai didi

sql-server - JOIN 的顺序有影响吗?

转载 作者:行者123 更新时间:2023-12-02 18:36:56 33 4
gpt4 key购买 nike

假设我有一个如下查询:

SELECT t1.id, t1.Name
FROM Table1 as t1 --800,000 records
INNER JOIN Table2 as t2 --500,000 records
ON t1.fkID = t2.id
INNER JOIN Table3 as t3 -- 1,000 records
ON t1.OtherId = t3.id

如果我更改 Table2 和 Table3 上的联接顺序,我会看到性能改进吗?见下文:

SELECT t1.id, t1.Name
FROM Table1 as t1 --800,000 records
INNER JOIN Table3 as t3 -- 1,000 records
ON t1.OtherId = t3.id
INNER JOIN Table2 as t2 --500,000 records
ON t1.fkID = t2.id

我听说查询优化器会尝试确定最佳顺序,但并不总是有效。您使用的 SQL Server 版本有影响吗?

最佳答案

连接的顺序没有区别。

真正重要的是确保您的统计数据是最新的。

检查统计信息的一种方法是在 SSMS 中运行查询并包含实际执行计划。如果执行计划的任何部分使用的估计行数与实际行数相差很大,那么您的统计信息就已过时。

重建相关索引时也会重建统计信息。如果您的生产维护窗口允许,我会每晚更新统计数据。

这将更新数据库中所有表的统计信息:

exec sp_MSforeachtable "UPDATE STATISTICS ?"

关于sql-server - JOIN 的顺序有影响吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2151464/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com