可能重复:
使用包含列或不使用创建索引的差异
编辑:忽略此帖子,我将其标记为 mod,因为它是重复的。谢谢大家的回复!
创建多列索引,这两者有什么区别:
CREATE INDEX MyIndex ON TABLE1 (COLUMN1 ASC, COLUMN2 ASC, COLUMN3 ASC, [etc...])
对比
CREATE INDEX MyIndex ON TABLE1 (COLUMN1 ASC)
INCLUDE (COLUMN2, COLUMN3, [etc...] )
MSDN 说后者意味着包括非关键列。通俗地说,这意味着什么?重点是,我基本上要处理这样一种情况,即我必须优化查询,这些查询只需要表中几十列中的 3-5 列的数据,可以说使用其中一列作为“基础”索引并获取来自同一行的其他列值。
在一个上创建聚集索引不是一种选择,因为表会定期更新,这往往会创建大量的锁和等待。我目前正在测试这些,但我也想从你们那里得到一个明智的答案。:)