可能重复: 使用include列创建索引的差异
编辑:忽略这篇文章,我把它标记为一个模版,因为它是一个副本。谢谢你的回复!
创建多列索引,这两者之间有什么区别:
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列中的数据,使用其中一列作为“基本”索引,从而从同一行获取其他列的值。
创建一个聚集索引不是一个选项,因为表是定期更新的,这往往会创建大量的锁和等待。我目前正在测试这些,但我也想从你们那里得到一个明智的答案。:)
发布于 2012-06-11 15:30:23
这意味着索引不是基于INCLUDE子句中的列,这意味着当INCLUDE子句中的列被更新时,索引中的相应行不必移动。有关详细信息,包括使用场景,请参见这
https://stackoverflow.com/questions/10982995
复制相似问题