我们在内部联接查询中有两个表。当两个表中都有数百万条记录时,建议使用以下哪个选项来提高性能。
注意:外键列上有一个非聚集索引。没有足够的数据来验证开发环境中的性能。也可能会有更多表通过INNER或LEFT联接进入此联接。
表格:
Subscriber(SID(PK), Name)
Account(AID(PK),SID(FK), AName)
查询:
SELECT *
FROM Account A
INNER JOIN Subscriber S ON S.SubscriberID= A.SubscriberID
WHERE
S.SubscriberID = @subID -- option 1
A.SubscriberID = @subID -- option 2
您将谓词放在哪一列上应该没有什么区别。
SQL Server可以看到S.SubscriberID= A.SubscriberID
条件并为另一列创建一个“隐式谓词”。
这确实成为交叉连接,然后为discussed here