Рекомендации по планированию секционированных таблиц и индексов

Перед секционированием таблицы или индекса необходимо запланировать создание следующих объектов базы данных:

  • Функции секционирования

  • Схемы секционирования

Функция секционирования на основе значений некоторых столбцов, называемых столбцами секционирования, определяет, каким образом строки в таблице или индексе распределяются по секциям.

Схема секционирования сопоставляет каждую из секций, определенных функцией секционирования, с файловой группой.

Планирование функции секционирования

При планировании функции секционирования следует исходить из двух условий: столбцов, значения которых определяют то, каким образом секционируется таблица, то есть так называемых столбцов секционирования, и диапазона значений столбца секционирования для каждой из секций. Этот диапазон определяет число секций, на которые разбивается таблица. У таблиц может быть не более 1000 секций.

Выбор столбца секционирования и диапазона значений определяется прежде всего степенью, до которой данные должны быть логически сгруппированы, например по датам, и тем, достаточно ли адекватно будет данное логическое группирование для управления подмножествами данных.

Например, согласно сценарию секционирования в образце базы данных База данных AdventureWorks2008R2, таблицы TransactionHistory и TransactionHistoryArchive секционированы по полю TransactionDate. Диапазон значений для каждой секции равен одному месяцу. Таблица TransactionHistory содержит самые последние транзакции в году, а таблица TransactionHistoryArchive содержит более ранние транзакции. Секционирование таблиц таким образом позволяет быстро и эффективно переносить данные за нужный месяц из таблицы TransactionHistory в таблицу TransactionHistoryArchive.

Дополнительные сведения об этом сценарии см. в разделе Проектирование секций для управления вложенными наборами данных.

Любой столбец, тип данных которого пригоден для применения в качестве ключа индекса, может быть указан в качестве столбца секционирования, за исключением столбцов с типом данных timestamp, с определяемыми пользователем типами данных Microsoft .NET Framework CLR и псевдонимами типов данных. Дополнительные сведения см. в разделе Создание секционированных таблиц и индексов.

Планирование схемы секционирования

При планировании схемы секционирования необходимо решить, в какой файловой группе (или группах) будут размещены секции. Главная причина, по которой секции разделяются по разным файловым группам, заключается в необходимости независимого резервного копирования этих секций, поскольку оно всегда выполняется отдельно для каждой из файловых групп. Дополнительные сведения см. в разделе Резервное копирование и восстановление баз данных в SQL Server.

Важное примечаниеВажно!

SQL Server не гарантирует выполнения запросов, обращающихся к секционированной таблице, если какие-либо файлы, принадлежащие к любым файловым группам таблицы, не находятся в состоянии ONLINE, независимо от того, к каким секциям обращается запрос.

Скрипты Transact-SQL, реализующие этот сценарий, можно увидеть в образцах ReadMe_SlidingWindow и Readme_PartitioningScript. Дополнительные сведения об образцах см. в разделе Вопросы установки образцов кода и образцов баз данных SQL Server.