仍在了解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)
答案 0 :(得分:1)
删除除最后一个索引SomeIndex3
前两个索引是完全冗余的。此外,如果您还没有表上的聚簇索引,并且没有理由不将其保留,则创建一个聚簇索引,其索引编号与SomeIndex3
相同,并删除SomeIndex3
。< / p>