SELECT * from Table1 WHERE Field1 = 'abc'
我已经读过在使用 WHERE 子句来限制返回的记录(即)时应该使用索引列。
使用 时是否适用此规则APPLY
,如
SELECT t.Field1,x.Field2 from Table1 t
OUTER APPLY (select * from Table2 x WHERE t.Field1 = x.Field1
?
换句话说,在 Table2.Field1 上放置索引会加速上述查询吗?
对不起,如果答案很明显,我对 OUTER 和 CROSS APPLY 的机制没有深入的了解,只是它们可以用来代替 JOIN。
编辑基于这个线程( Hard and Fast Rules for include columns in Index )
的一个更好的问题是,我是否应该对我从另一个表中提取的所有列使用 INCLUDE ,如果是这样,它是否更有效使用OUTER APPLY (select Field1,Field2
而不是OUTER APPLY (select *