【发布时间】:2010-11-29 05:38:52
【问题描述】:
我有一个在 SQL Server 2005 中连接 3 个表的查询,但没有 Where 子句,所以我正在索引连接语句中找到的字段。
如果我的索引设置为 Col1,col2,col3
我的加入是
Tbl1
inner join tbl2
On
Tbl1.col3=tbl2.col3
Tbl1.col2=Tbl2.col2
Tbl1.col1=Tbl2.col1
与索引的顺序相比,连接语句的顺序是否有所不同?我应该将我的索引设置为 Col3、col2、col1 吗?或者将我的加入语句重新排列为 Col1,col2,col3?
谢谢
【问题讨论】:
-
您指的是 3 个表,但只有 2 个被连接。而且你也没有说你是否在两个表上都有索引。我想说提供的信息不足以正确回答问题。
-
对我的假设有任何接受者,即首先拥有最具选择性的列可以帮助优化器?越想越觉得有意义……
标签: sql sql-server tsql indexing performance