如果我有一个多列索引 - 包含2列,我创建一个包含这2列的第二个索引(作为第1个2 - 相同的顺序)加上另外的第3列。是否需要保留第一个索引只有2列?
答案 0 :(得分:1)
不,没有必要保留第一个索引。
我应该强调列的排序很重要。因此,这仅适用于两个索引中的列以相同顺序的相同列开头的情况。
我可以补充一下。 。 。有两个列的索引有一个非常微小的好处,有些数据库甚至可以利用:索引更小。因此,如果您受内存限制(数据与可用内存相比确实很大),那么您可能会遇到一些情况,其中2列索引可以适合内存,但较大的索引则不适合。我认为这是一个特殊的边缘案例,在实践中不太可能。
答案 1 :(得分:1)
如果两列的顺序相同(在前两个位置),那么保持初始索引是没有意义的。它很可能会停止使用。
顺便说一句,您可以将它们保留一段时间并构建一个查询以不时检查sys.dm_db_index_usage_stats表,以便确认...