Что происходит с некластеризованными индексами после разделения

#sql-server #indexing #database-partitioning

#sql-server #индексирование #база данных-разделение

Вопрос:

У меня есть таблица с огромным объемом данных (около 2 ТБ), и я хочу повысить производительность, разделяя ее ежемесячно по столбцу CREATED_DATE, поскольку приложение работает с данными в течение одного месяца. В таблице есть 3 некластеризованных неуникальных индекса, 2 из них включают столбец CREATED_DATE .

Поэтому мне интересно, что происходит под капотом с этими индексами после выполнения разделения.

  1. Становятся ли индексы недействительными после разделения?
  2. Включает ли операция секционирования перестройку индекса или я должен перестроить их самостоятельно?
  3. Могут ли индексы, включающие столбец даты, быть перестроены для определенного раздела за раз, но не для всей таблицы, поскольку это может занять очень много времени?

Индексы создаются следующим образом:

 CREATE NONCLUSTERED INDEX [IX_Table] ON [dbo].[Table](CREATED_DATE ASC, COL1 ASC, COL2 ASC, COL3 ASC) 
INCLUDE (COL5, COL6, COL7, COL8, COL9, COL4, ...)
WITH (PAD_INDEX = OFF, ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, SORT_IN_TEMPDB = OFF, FILLFACTOR =80) ON [PRIMARY];
 
CREATE NONCLUSTERED INDEX [IX_Table_1] ON [dbo].[Table](COL4 ASC, COL3 ASC, CREATED_DATE ASC) 
INCLUDE (COL10, COL11)
WITH (PAD_INDEX = OFF, ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, SORT_IN_TEMPDB = OFF, FILLFACTOR =80) ON [PRIMARY];
 
CREATE NONCLUSTERED INDEX [IX_Table_2] ON [dbo].[Table](COL9 ASC, COL3 ASC, COL2 ASC, ...) 
INCLUDE (CREATED_DATE, COL5, COL6, COL7, COL8, COL4, COL10, COL11, ...)
WITH (PAD_INDEX = OFF, ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, SORT_IN_TEMPDB = OFF, FILLFACTOR =80) ON [PRIMARY];
 

Спасибо

Комментарии:

1. пожалуйста, определите «огромный объем данных». Aso, пожалуйста, опубликуйте определения таблиц и индексов

2. коэффициент заполнения 80 не поможет вашему размеру 2 ТБ, кстати….

3. @MitchWheat, не могли бы вы помочь мне прояснить другие вопросы о разделении?