Как индексировать и разбивать таблицу - PullRequest
0 голосов
/ 26 мая 2020

Мне нужно проиндексировать и разделить огромную, но простую таблицу (127 миллионов строк), чтобы ускорить выполнение запросов, используя SQL Server Management Studio. Он имеет 99 блоков ежемесячных данных, каждый месяц имеет целое число от 1 до 99. Я хочу разбить каждый месяц на каждый раздел и индексировать по столбцам [ID] и [Month], так как мне нужно запросить таблицу для сравнения каждого месяца до предыдущего [Month] и каждого отдельного [ID]. Как мне это сделать? Я создал функцию разделения

CREATE PARTITION FUNCTION PF_Monthly(int)
AS RANGE RIGHT FOR VALUES (
1,2,3,4,5,6,7,8,9,10
,11,12,13,14,15,16,17,18,19,20
,21,22,23,24,25,26,27,28,29,30
,31,32,33,34,35,36,37,38,39,40
,41,42,43,44,45,46,47,48,49,50
,51,52,53,54,55,56,57,58,59,60
,61,62,63,64,65,66,67,68,69,70
,71,72,73,74,75,76,77,78,79,80
,81,82,83,84,85,86,87,88,89,90
,91,92,93,94,95,96,97,98,99
)
GO

и схему:

CREATE PARTITION SCHEME PS_Monthly
AS PARTITION PF_Monthly
ALL TO ( [PRIMARY] );
GO

Как мне применить это к таблице с именем [Table] и ее столбцу с именем [Month]? Могу ли я сделать это после индексации или мне нужно заново создать таблицу, затем разбить на разделы, а затем индексировать? Спасибо

1 Ответ

2 голосов
/ 26 мая 2020

Мне нужно проиндексировать и разбить на разделы огромную, но простую таблицу (127 миллионов строк), чтобы ускорить выполнение запросов,

Это не то, для чего нужно разбиение. Это могло бы быть быстрее, но разбиение на разделы - это скорее функция управляемости и функция, которая позволяет вашей рабочей нагрузке не медленнее по мере роста объема данных. Примечание. не медленнее не то же самое, что быстрее .

Разделение на разделы - полезная функция для повышения производительности, но это далеко не серебряная пуля. columnstores обычно намного лучше подходят для повышения производительности запросов к большим таблицам, и их можно комбинировать с секционированием.

Как применить это к таблице с именем [Table] и ее столбцу под названием [Месяц]?

Процесс описан здесь: Перемещение существующего индекса в другую файловую группу

Перемещение таблицы в схему разделов аналогично как перемещение его в другую файловую группу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...