sql-server – JOIN的顺序是否有所作为?
发布时间:2020-05-23 06:00:39 所属栏目:MsSql 来源:互联网
导读:说我有一个如下所示的查询: SELECT t1.id, t1.NameFROM Table1 as t1 --800,000 recordsINNER JOIN Table2 as t2 --500,000 recordsON t1.fkID = t2.idINNER JOIN Table3 as t3 -- 1,000 recordsON t1.OtherId = t3.id 如果我在
|
说我有一个如下所示的查询: 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,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 Select语句中特定符号之前出现的字符
- sql – ActiveRecord语法,用于在使用连接时查找平均评级为x
- sql-server-2008 – 强制ASP.Net使用TCP / IP连接到SQL Ser
- sql-server – SQL Server 2008 R2 Varbinary Max Size
- MySQL中使用SQL语句查看某个表的编码方法
- SQL Server 2005的cmd_shell组件的开启方法
- SQL:从两个表中选择列
- Laravel 4雄辩的查询生成器 – 复杂的连接与变量
- 选择SQL表中的最后一行
- SQL Server CREATE FUNCTION sqlserver用户定义函数
