【发布时间】:2012-06-11 15:19:54
【问题描述】:
可能重复:
Difference of create Index by using include column or not using
编辑:忽略此帖子,我将其标记为模组,因为它是重复的。感谢大家的回复!
创建多列索引,这两者有什么区别:
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 列的数据,可以说使用其中一列作为“基础”索引并获取同一行的其他列值。
在一个表上创建聚集索引不是一种选择,因为表会定期更新,这往往会创建大量锁和等待。我目前正在测试这些,但我也想从你们那里得到一个明智的答案。 :)
【问题讨论】:
-
这个问题可能更适合dba.stackexchange.com
-
嗯,它是重复的,谢谢。该页面正是我正在寻找的那种答案。
标签: sql-server indexing