Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
module 3 Create Table.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
112 Кб
Скачать
☆

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

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

При создании схемы секционирования пользователь определяет файловые группы, с которыми сопоставляются табличные секции, в соответствии с аргументами функции секционирования. Необходимо указать достаточно файловых групп для размещения соответствующего количества секций. Можно указать сопоставление всех секций с различными файловыми группами, сопоставление некоторых секций с одной группой файлов или сопоставление всех секций с одной файловой группой. Можно также указать дополнительные, «неназначенные» файловые группы в случае, если в дальнейшем предполагается добавить еще секции. В этом случае SQL Server помечает одну из файловых групп свойством NEXT USED. Это означает, что файловая группа будет содержать следующую добавленную секцию.

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

CREATE PARTITION SCHEME partition_scheme_name

AS PARTITION partition_function_name

[ ALL ] TO ( { file_group_name | [ PRIMARY ] } [ ,...n ] )

partition_scheme_name

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

partition_function_name

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

ALL

Указывает, что все секции сопоставляются с файловой группой, определяемой аргументом file_group_name, или с первичной файловой группой, если указывается [PRIMARY]. Если указывается ALL, то может быть указано только одно значение аргумента file_group_name.

file_group_name | [ PRIMARY ] [ ,...n]

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

Если указывается [PRIMARY], секция сохраняется в первичной файловой группе. Если указывается ALL, то может быть указано только одно значение аргумента file_group_name. Секции назначаются файловым группам, начиная с секции 1, в том порядке, в котором файловые группы перечисляются в [,...n]. Одно и то же имя file_group_name может быть указано в [,...n] несколько раз. Если значение n не достаточно для количества секций, указываемого в аргументе partition_function_name, CREATE PARTITION SCHEME завершается с ошибкой.

Если аргумент partition_function_name формирует меньше секций, чем количество файловых групп, первая неназначенная файловая группа отмечается как NEXT USED и информационное сообщение выводит наименование файловой группы NEXT USED. Если указывается параметр ALL, единственный аргумент file_group_name сохраняет свое свойство NEXT USED для аргумента partition_function_name.

Пример:

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

CREATE PARTITION FUNCTION myRangePF (int)

AS RANGE LEFT FOR VALUES (1, 100, 1000);

GO

CREATE PARTITION SCHEME myRangePS

AS PARTITION myRangePF

TO (test1fg, test2fg, test3fg, test4fg);

Секции таблицы, использующей функцию секционирования myRangePF на столбце секционирования col1, будут назначены так, как показано в следующей таблице.

Файловая группа

test1fg

test2fg

test3fg

test4fg

Секция

1

2

3

4

Values

col1 <= 1

col1 > 1 AND col1 <= 100

col1 > 100 AND col1 <= 1000

col1 > 1000

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]