SELECT Col1
FROM Tab1
INNER JOIN Tab2 ON Tab1.Col2 = Tab2.Col2
WHERE Tab1.Col3 = "some ID"
GROUP BY Col1, Col4
ORDER BY Col4 DESC
为上述情况创建覆盖索引的一般方法是什么?什么是SQL Server子句的索引的一般顺序?
是不是像列从
- ORDER BY
- GROUP BY
- WHERE
- JOIN
- 选择
这就好比
INDEX (Col4, Col1, Col3, Col2) ?
我用的是SQL Server 2000的
对于'SELECT',你应该在'(Col3)'上有一个索引来处理'WHERE'子句 - 但对于'ORDER BY',你的索引应该在' (Col4)',对于GROUP BY,它应该在'(Col1,Col4)'上 - 简而言之:你将无法使用单个索引处理这个问题 –
如果查询不覆盖索引经常使用? –
当然可以 - 但是您将无法创建同时满足所有要求的覆盖指数..... –