- •Урок 1: Типы данных
- •Типы данных Microsoft sql Server
- •Точные числа
- •Приблизительные числа
- •Двоичные данные
- •Пространственные типы данных
- •Специальные типы данных
- •Устаревшие типы данных
- •Пользовательские типы данных
- •Изменение таблиц
- •Удаление таблиц
- •Урок 3: Горизонтальное секционирование таблиц
- •Архитектура секционирования
- •Создание функции секционирования
- •Создание схемы секционирования
- •Создание секционированной таблицы или индекса
- •Секционирование индексов
- •Сценарий "Скользящее Окно"
- •Контрольные вопросы по изученному материалу
Сценарий "Скользящее Окно"
На практике секционированные таблицы применяются для хранения данных, диапазон секционирования которых постоянно изменяется.
Например, секционированная таблица может использоваться для эффективного хранения финансовой отчетности по месяцам за последний год. В этом случае, как только станут доступными данные за текущий месяц возникнет необходимость "двигать" данные используя существующие файловые группы, то есть данные за самый старый месяц должны быть архивированы и удалены, а таблица перестроена для хранения данных за предыдущих 11 месяцев и ставших доступными новых данных.Такая операция должна проводиться каждый месяц, как только станут доступны новые данные и фактически будут меняться только даты, то есть граничные точки функции секционирования.
В общем случае данная операция будет включать следующие шаги:
Создание "включаемой" таблицы
Создание "выключаемой" таблицы
Исключение старых данных из секционированной таблицы и добавление новых
Создание "включаемой" таблицы
Необходимо создать таблицу, которая станет включаемой секцией. Таблица должна соответствовать структуре существующей таблицы и иметь ограничение целостности для того, чтобы ограничить данные только допустимыми для будущей секции значениями.
Данная таблица должна располагаться в той же файловой группе, что и секция на которую она будет переключаться, это позволит существенно снизить нагрузку на вычислительные ресурсы, поскольку фактически данные перемещаться не будут.
После того как включаемая таблица создана необходимо загрузить в нее данные. В рассматриваемом примере это будут данные финансовой отчетности за прошедший месяц.
Если ограничения целостности не были созданы для включаемой таблицы заранее, необходимо создать ограничения целостности. Для оптимизации производительности, создавать ограничение целостности лучше уже после заполнения включаемой таблицы данными.
Если исходная таблица, в которую будет включаться новая секция, имела кластеризованный индекс, такой же индекс нужно создать для новой таблицы.
Создание "выключаемой" таблицы
Необходимо создать таблицу, которая будет хранить данные отключаемой секцией. Таблица должна соответствовать структуре существующей таблицы.
Если исходная таблица, в которую будет включаться новая секция, имела кластеризованный индекс, такой же индекс нужно создать для новой таблицы.
Исключение старых данных из секционированной таблицы и добавление новых
Для исключения старых данных необходимо выполнить операцию SWITCH, рассмотренную ранее, указав в качестве источника секцию, хранящую самые старые данные, а в качестве адресата имя выключаемой таблицы.
После того как данные были переключены, необходимо изменить функцию секционирования, исключив самую левую граничную точку на временной оси, для этого используется операция MERGE, рассмотренная ранее.
Для сохранения высокопроизводительного доступа, освободившуюся после переключения данных файловую группу необходимо пометить как "next used". Чтобы данные секций по прежнему располагались в разных файловых группах.
После этого необходимо изменить функцию секционирования, добавив новую граничную точку, для этого используется операция SPLIT, рассмотренная ранее.
После того как исходная таблица подготовлена к вставке новых данных, необходимо переключить в нее данные из "включаемой" таблицы с помощью операции SWITCH.
