在准备 70-433 考试时,我注意到您可以通过以下两种方式之一创建覆盖索引。
CREATE INDEX idx1 ON MyTable (Col1, Col2, Col3)
- 要么 -
CREATE INDEX idx1 ON MyTable (Col1) INCLUDE (Col2, Col3)
INCLUDE 子句对我来说是新的。为什么要使用它?在确定是否创建包含或不包含 INCLUDE 子句的覆盖索引时,您会建议哪些指导方针?
如果该列不在该列中WHERE/JOIN/GROUP BY/ORDER BY,而仅在该列中的SELECT子句列表中是您使用的地方INCLUDE。
WHERE/JOIN/GROUP BY/ORDER BY
SELECT
INCLUDE
该INCLUDE子句在最低/叶级别添加数据,而不是在索引树中。这使得索引更小,因为它不是树的一部分
INCLUDE columns不是索引中的键列,因此它们没有排序。这意味着它对于我上面提到的谓词、排序等并不是很有用。但是,如果您在键列的几行中进行残余查找,这 可能会很有用
INCLUDE columns