Горизонтальное разделение таблицы фактов в SQL Server 2005 - Создание секционированной таблицы
ОГЛАВЛЕНИЕ
Создание секционированной таблицы
Создание секционированной таблицы мало чем отличается от создания обычной, нужно только сослаться на имя схемы секционирования в условии ON, как показано в
CREATE TABLE SALESFact
(SalesFact_KEY bigint identity
(1, 1) primary not clustered NOT
NULL,
... all the other columns in the
table, ending up with the
partitioning column... ,
Date_of_Event datetime
NOT NULL)
ON MyPartitionScheme (Date_of_Event)
Определяя имя схемы секционирования, администратор указывает, что эта таблица является секционированной. Очевидно, схема секционирования и функция разделения на секции должны существовать в базе данных до того, как можно будет создавать таблицу.
Можно объединять данные из многих секций в одну. Тем не менее, за один раз можно объединять только две смежные секции. И если попробовать объединить таблицу, которая имеет множество секций, нужно повторить этот шаг много раз. Для того чтобы слить две секции, выполните команду
ALTER PARTITION FUNCTION
MyPartitionFunction()
MERGE RANGE (‘1/01/2003')
Эта команда будет объединять секции следующим образом: секция 1 (P1) вольется в P2. Это означает, что P2 будет содержать все строки со значением Date_of_Event до 1/01/05. Внутри (то есть в системной таблице sys.partitions) секции будут перенумерованы, начиная с единицы (не с нуля). Секции P1 и P2 станут P1, секция P3 станет P2 и P4 станет P3. Я рекомендую ознакомиться с DDL, прежде чем объединять секции, потому что потенциально можно остановить все операции на время выполнения задания, если не быть осторожным при выполнении объединений. Эрик Хансон, руководитель проекта по обработке запросов в SQL Server Relational Engine Team в Microsoft, рекомендует выполнять разбиение и объединение только на пустых секциях, даже если для этого придется временно освободить секции.
Как просто управлять громадными таблицами
SQL Server 2005 способен поддерживать горизонтальное разделение таблицы без пересечений на секции и размещать каждую секцию в особый раздел, что облегчает управление большими таблицами данных. Поскольку в SQL Server 2005 Enterprise и в SQL Server 2005 Developer Editions поддерживается создание секций и правильно написанные запросы будут обращаться только к строкам в пределах нужной им секции, выполнение будет происходить намного быстрее, чем если бы запросы перебирали содержание всей таблицы.