是否可以合并这些非聚集索引以减少空间?

时间:2015-12-30 06:52:17

标签: sql-server indexing sql-server-2008-r2

仍在了解SQL Server 2008 R2中的索引。

我在一个表上有三个索引,如果我可以合并索引以减少空间,我想知道大约1000万行数据,因为它们每个都需要几个演出。

查询:

Select * 
From dbo.Table1
Where ColumnA in ('1')

Select * 
From dbo.Table1
Where ColumnA in ('1')
  And ColumnB in ('2')

Select * 
From dbo.Table1
Where ColumnA in ('1')
  And ColumnB in ('2')
  And ColumnC in ('3')

索引:

Create Nonclustered Index [SomeIndex1] 
on dbo.Table1 (ColumnA Asc)
Include(ColumnB, ColumnC, ColumnD)

Create Nonclustered Index [SomeIndex2] 
on dbo.Table1(ColumnA Asc, ColumnB Asc)
Include (ColumnC, ColumnD)

Create Nonclustered Index [SomeIndex3] 
on dbo.Table1(ColumnA Asc, ColumnB Asc, ColumnC Asc)
Include (ColumnD)

1 个答案:

答案 0 :(得分:1)

删除除最后一个索引SomeIndex3

之外的所有索引

前两个索引是完全冗余的。此外,如果您还没有表上的聚簇索引,并且没有理由不将其保留,则创建一个聚簇索引,其索引编号与SomeIndex3相同,并删除SomeIndex3。< / p>