
- •Лекция 1. Создание баз данных Знакомство с sql Server
- •Создание Базы данных
- •Команда создания бд (create database)
- •Опции базы данных
- •Категории опций базы данных
- •Источники информации о бд
- •Изменение параметров бд (alter database)
- •Удаление бд (drop database)
- •Создание Групп файлов (Filegroups)
- •Создание Схем (Schemas)
- •Создание Снапшотов (Snapshots)
- •Лекция 2. Создание типов данных и таблиц
- •Создание типов данных (Types)
- •Создание таблиц
- •Как организовано хранение данных в строках
- •Как хранятся большие значения данных
- •Рекомендации по созданию таблиц
- •Изменение и удаление таблиц
- •Создание секционированных таблиц
- •Функции секционирования (Partition Functions)
- •Операции над секционированными таблицами
- •Лекция 3 Получение xml-документов из реляционных таблиц (for xml)
- •Введение
- •Введение в for xml
- •Введение
- •Синтаксис фразы for xml
- •Примеры использования for xml
- •Запросы в режиме raw
- •Введение
- •Получение данных в сгенерированных элементах-строках
- •Получение данных в виде элементов
- •Получение данных при использовании корневого элемента и настроенного имени элемента строки
- •Запросы в режиме auto
- •Введение
- •Получение вложенных данных при использовании режима auto
- •Получение данных в виде элементов
- •Запросы в режиме explicit
- •Введение
- •Универсальные таблицы
- •Определение столбцов универсальной таблицы
- •Создание запроса для построения универсальной таблицы
- •Запросы в режиме path
- •Введение
- •Получение данных при использовании режима path
- •Изменение имени элемента row
- •Синтаксис для получения вложенных xml-документов
- •Введение
- •Использование режима auto для получения вложенных xml
- •Использование type для получения типа данных xml в подзапросе
- •Вложение таблиц при использовании режима explicit
- •Лекция 4 Разбор документов xml с использованием синтаксиса openxml
- •Введение
- •Порядок разбора данных xml
- •Хранимые процедуры для управления внутренним представлением дерева
- •Создание дерева с помощью хранимой процедуры sp_xml_preparedocument
- •Удаление дерева с использованием sp_xml_removedocument
- •Примеры a. Использование простой инструкции select с openxml
- •Б. Указание ColPattern для сопоставления столбцов xml-атрибутам
- •Дополнительная информация
- •Что такое xQuery?
- •Введение
- •Синтаксис xQuery
- •Операторы flowr
- •Метод value
- •Метод exist
- •Связывание реляционных столбцов и переменных
- •Метод modify
- •Введение
- •Оператор insert
- •Оператор replace
- •Оператор delete
- •Лекция 5 Реализация Хранимых Процедур и Функций
- •Лекция 7 Поддержка целостности данных
Функции секционирования (Partition Functions)
Функции секционирования определяют тип данных ключа секционирования и граничные значения для каждой секции. Число секций зависит от функции секционирования и всегда на единицу больше, чем число граничных значений, определенных в функции.
Например, функция секционирования с ключом типа datetime и граничными значениями ‘01/01/2003’, ‘01/01/2004’, ‘01/01/2005’ определит 4 секции по периодам: до 01.01.2003, 01.01.2003-31.12.2003, 01.01.2004-31.12.2004, после 01.01.2005.
Функции секционирования можно сконфигурировать как левые или правые (LEFT, RIGHT). В функции LEFT граничное значение входит в левую секцию. В функции RIGHT граничное значение входит в правую секцию.
Функцию секционирования можно создать с помощью оператора CREATE PARTITION FUNCTION языка Transact-SQL. Пример:
CREATE PARTITION FUNCTION pf_orderDate (datetime)
AS RANGE RIGHT
FOR VALUES (‘01/01/2003’, ‘01/01/2004’, ‘01/01/2005’)
Схема секционирования (Partition Scheme)
Схема секционирования распределяет секции, определенные в функции секционирования по файловым группам, в которых секции будут физически храниться. Можно поместить все секции в одной группе или в разных, в зависимости от потребностей.
Когда создается схема секционирования, можно (но необязательно) определить файловую группу для секции, которая будет добавлена в функцию секционирования. Эту файловую группу принято называть next.
Схему секционирования можно создать с помощью оператора CREATE PERTITION SCHEME языка Transact-SQL:
CREATE PARTITION SCHEME ps_OrderDate
AS PARTITION pf_OrderDate
TO (fg1,fg2,fg3,fg4,fg5)
Если вы хотите поместить все секции в одну файловую группу, то используйте ключевое слово ALL, например:
CREATE PARTITION SCHEME ps_ordderDate
AS PARTITION pf_OrderDate
ALL TO ([PRIMARY])
В данном примере все секции будут помещены в первичную файловую группу, которая используется и в качестве файловой группы next.
Операции над секционированными таблицами
Кроме преимуществ, рассмотренных выше, секционированные таблицы могут обеспечить очень мощные возможности. Можно выполнить три операции над секциями:
Переключение (SWITCH)
Слияние (MERGE)
Разделение (SPLIT)
Можно обменять заполненную таблицу или секцию с пустой таблицей или секцией при использовании фразы SWITCH оператора ALTER TABLE. Эта техника обычно используется для архивирования данных секционированной таблицы или для массовой загрузки (bulk insert) новых данных из некоторой таблицы.
Следующий код показывает, как переключить секцию:
ALTER TABLE dbo.PartitionedTr
SWITCH PARTITION 1
TO dbo.ArchivedTr
Можно слить две секции в одну, использую оператор ALTER PARTITION FUNCTION.
Когда выполняется операция слияния, удаляется секция, в которую входит граничное значение, указанное в операторе ALTER PARTITION FUNCTION, а данные записываются в секцию, смежную с удаленной. Пример:
ALTER PARTITION FUNCTION pf_OrderDate()
MERGE RANGE (‘01/01/2003’)
Подобно слиянию, операция разделения выполняется при помощи оператора ALTER PARTITION FUNCTION. При этом создается новая секция и данные соответствующим образом разделяются по двум секциям. Новая секция создается в файловой группе next. Если такой группы нет, то возникает ошибка.
Пример:
ALTER PARTITION FUNCTION pf_OrderDate()
SPLIT RANGE (‘01/01/2006’)