Изучение индексов в SQL Server 2008 R2.Можно ли объединить эти некрупные индексы для сокращения пространства?
У меня есть три индекса на одной таблице, и есть около 10 миллионов строк данных, которые я хочу знать, могу ли я объединить индексы, чтобы уменьшить пространство, поскольку они занимают несколько концертов каждый.
запросов:
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)
Если ваша цель * только * состоит в сокращении использования пространства, просто удалите все индексы. –
'SomeIndex3' на самом деле может обрабатывать все три примера запросов, показанных довольно красиво - два других индекса действительно не имеют большой пользы - если вы действительно хотите уменьшить количество индексов, а затем отпустите« SomeIndex1 »и« SomeIndex2 » ' –