SQL Server 2014

advertisement
SQL 2014
Арсений Евмененко
Расписание
1. SQL Server 2014 Обзор и новые возможности
2. Производительность и обработка в оперативной
памяти для OLTP
3. Новые гибридные сценарии
4. SQL Server 2014 Улучшенная Доступность и
Аварийное восстановление
Часть 1: Обзор SQL Server 2014
Обзор SQL 2014
Новые
возможности
По пути в облако
Развитие платформы данных Microsoft
XML ● KPIs
SQL Server
2000
Management Studio ● Зеркалирование SQL Server
2005
Сжатие● Управление политиками ● Разработка
SQL Server
2008
PowerPivot ● Интеграция SharePoint ● Master Data Services
SQL Server
2008 R2
AlwaysOn ● Колоночные индексы● Data Quality Services ● Power View ● Облачная интеграция SQL Server
2012
Обработка в оперативной памяти ● Производительность и масштабируемость ● Оптимизировано для гибридного облака ● HDInsight ● Облачный BI
SQL Server
2014
Новые и улучшенные возможности с SQL Server 2014
Улучшенная высокая
доступность
Технологии In-Memory
In-Memory OLTP
•
Улучшения
производительности до 10X
– 30X раз с OLTP
встроенным в SQL Server
In-Memory DW
•
До 100X раз увеличение
производительности и
сжатия данных
•
Обновляемое и
кластеризуемое
SSD Buffer pool
Extension
•
От 4 до 10-кратного улучшение
использования памяти и до 3кратного улучшения
производительности приложений
Always On улучшения
•
Возросшая доступность и
увеличенная управляемость
до 8 активных вторичных баз
Новые гибридные
сценарии
Резервная копия в
Azure
•
Работа с БД Онлайн
•
Возросшая доступность
обслуживания для для
индексов/разделов
Легкое и дешевое решение
по аварийному
восстановлению с Azure
Storage
Высокая доступность
на Azure ВМ
•
Легкое и дешевое решение
обеспечения высокой
доступности с Azure ВМ
Развёртывание в
Azure
•
Мастер развертывания для
миграции БД
Другие
Вместе лучше с
Windows Server
• Поддержка WS2012 R2 ReFS
• Изменение размера VHDx
онлайн
• Hyper-V replica
Улучшенный Power
View
•
Power View доступен на
имеющихся
аналитических моделях и
поддержка новых
многоразмерных моделей.
Часть 2: Производительность SQL Server 2014 и
возможности вычислений в оперативной
памяти
Возможности по
производительно
сти
Вычисления в
памяти
Управление
ресурсами
In-Memory OLTP
Ядро SQL Server
Преимущества
• Низкая задержка
Обработка TDS и управление сеансами
• Производительность выше в 30 раз
• Масштабируемость выше в 2–5 раз
Компилятор InMemory OLTP
• Защита инвестиций в Microsoft SQL Server
Принципы работы
В SQL Server интегрировано новое
высокопроизводительное ядро оперативной
обработки транзакций (OLTP) с оптимизацией
памяти, соответствующее современным
тенденциям в сфере разработки оборудования
Анализатор,
каталог,
оптимизатор
Встроенные
компилированные SP
и схема
Кэш процессов / планирования
для динамического соединения,
T-SQL, интерпретации,
планирования и т. д.
Ядро In-Memory OLTP:
таблицы и индексы
с оптимизацией памяти
Пул буферной памяти
для таблиц и индексов
Lock Manager
• Интегрированная в SQL Server реляционная база данных
• Полная поддержка ACID
• Оптимизация памяти
• Многовариантное оптимистическое управление
параллелизмом не блокируется (нет программной или
аппаратной блокировки)
• Компиляция во внутренний код T-SQL
Группа файлов таблиц
с оптимизацией
памяти
Журнал транзакций
Группа файлов данных
8
Характеристики совместимых приложений
• Приложение подходит для обработки in-memory
‐ Все данные, влияющие на производительность, уже
размещаются в оперативной памяти
‐ Блокировка транзакций или физическая блокировка
вызывает задержки и препятствует работе
• Приложение «аналогично OLTP»
‐ Относительно кратковременные транзакции
‐ Много одновременных транзакций из нескольких
соединений
‐ Примеры: продажа акций, бронирование путевок,
обработка заказов
• Приложения проще портировать, если
‐ Используются сохраненные процедуры
‐ Проблемы с производительностью отделены
от поднабора таблиц
9
Создание таблицы:
CREATE TABLE [Customer](
[CustomerID] INT NOT NULL
PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 1000000),
[Name] NVARCHAR(250) NOT NULL
Хэш-индекс
INDEX [IName] HASH WITH (BUCKET_COUNT = 1000000),
[CustomerSince] DATETIME NULL
Дополнительные индексы
)
заданы внутри
WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA);
Эта таблица
поддерживает
оптимизацию памяти
Эта таблица предназначена
для длительного хранения
Создание процедуры:
CREATE PROCEDURE [dbo].[InsertOrder] @id INT, @date DATETIME
WITH
NATIVE_COMPILATION,
SCHEMABINDING,
EXECUTE AS OWNER
AS
BEGIN ATOMIC
WITH
(TRANSACTION
ISOLATION LEVEL = SNAPSHOT,
LANGUAGE = 'us_english')
-- insert T-SQL here
END
Настройки сеанса задаются в
процессе создания
Этот процесс компилируется
внутри
Внутренние процессы должны
быть привязаны к схеме
Необходим контекст
выполнения
Элементарные блоки
•
Транзакция создается при
отсутствии транзакций
•
В противном случае
создается точка
сохранения
Интегрированный интерфейс
Резервное копирование и восстановление
Поддерживается резервное копирование и
восстановление всех компонентов и только журналов;
также поддерживается частичное восстановление
Кластеризация для аварийного восстановления
Время аварийного восстановления зависит от размера
таблиц длительного хранения с оптимизацией памяти
AlwaysOn
• В дополнительной среде таблицы с оптимизацией
памяти размещаются в оперативной памяти
• Время аварийного восстановления не зависит от
размера таблиц длительного хранения с
оптимизацией памяти
DMV, страницы каталогов, счетчики мониторинга
производительности, события XEvent
Память для мониторинга, сбор «мусора» и сведения о
транзакциях
SQL Server Management Studio (SSMS)
Создание, администрирование и мониторинг таблиц,
баз данных и серверов
14
Длительное хранение
Таблицы с оптимизацией памяти могут быть временными
или для длительного хранения
• По умолчанию они предназначены для длительного
хранения
• Временные таблицы используются для транзитных данных
Таблицы для длительного хранения содержатся в
отдельной группе файлов с оптимизацией памяти
У хранилища для оптимизации памяти и у таблиц на диске
разные шаблоны доступа
Группа файлов может содержать несколько контейнеров
(томов)
Дополнительные контейнеры помогают выполнять
параллельное восстановление; восстановление выполняется
со скоростью ввода-вывода
15
Резервное копирование таблиц
с оптимизацией памяти
Интегрировано с резервным копированием базы данных
SQL
• Резервное копирование группы файлов с оптимизацией
памяти выполняется в ходе резервного копирования базы
данных SQL Server
• Существующие сценарии резервного копирования
выполняются с минимальными или нулевыми изменениями
• Резервное копирование журнала транзакций включает
записи, которые относятся к оптимизации памяти
Не поддерживается
Дифференциальное резервное копирование
16
Миф №1
Решение SQL Server In-Memory OLTP было
создано недавно, как ответ конкурентам
Реальность
Проект «Hekaton» был запущен примерно 4 года назад в
связи с новыми тенденциями в бизнесе и в сфере
разработки оборудования
Миф №2
Технология In-Memory OLTP похожа
на DBCC PINTABLE
Реальность
In-Memory OLTP – абсолютно новая конфигурация,
оптимизированная для эффективной обработки данных
в оперативной памяти.
Для таблиц с оптимизацией памяти не нужны страницы
или пул буферной памяти.
Миф №3
Базы данных In-Memory – это отдельные
новые продукты
Реальность
In-Memory OLTP – это функция, которая полностью
интегрирована в SQL Server 2014
Миф №4
Чтобы использовать In-Memory OLTP
в существующем приложении SQL Server,
НЕ требуется никаких изменений
Реальность
Изменения обязательно потребуются: как минимум,
нужно будет изменить схему
Миф №5
Поскольку таблицы размещаются в
оперативной памяти, в них нельзя долго
хранить данные и они не высокодоступны:
при сбое сервера я их потеряю
Реальность
Система In-Memory OLTP предназначена для
длительного хранения данных и включает несколько
функций обеспечения высокой доступности (например,
AlwaysOn
Данные хранятся на диске и не будут утеряны в случае
сбоя сервера
Сводная информация по In-Memory OLTP
Что получает заказчик
• Высокопроизводительное ядро OLTP с оптимизацией
памяти, интегрированное в SQL Server и соответствующее
современным тенденциям в сфере разработки
оборудования
Основные преимущества
• Пропускная способность при обработки данных in-memory
выше в 20–30 раз
‐ Индексы (хэш и диапазон) хранятся только в оперативной памяти
(нет пула буферной памяти, B-деревьев)
‐ Компиляция T-SQL в машинный код с помощью генератора кода
C и компилятора Visual C
‐ Базовое ядро использует алгоритмы без блокировки (без
диспетчеров блокировки, физической или циклической
блокировки)
• Многовариантный контроль оптимистических
одновременных операций с полной поддержкой ACID
• Перенос существующих приложений
• Интегрированный интерфейс с одинаковыми
возможностями управления, принципами
администрирования и разработки
22
Обработка данных в оперативной памяти
Хранение данных организовано по столбцам: кучи, b-деревья, ключзначение
• Столбцовое хранилище с обработкой в
памяти
• Используются и память, и дисковые
накопители
“При использовании выполняемого в памяти
столбцового хранилища SQL Server 2012 нам
удается извлекать около 100 млн записей не за
полчаса, как раньше, а всего за 2-3 секунды.“
–- Ацуо Накадзима, заместитель директора,
Bank of Nagoya
• Встроено в основной движок
реляционной СУБД
• Преимущества:
‐ ускорение в 10-100 раз
‐ более простая разработка структуры
базы
‐ функционирует на уже имеющемся у
заказчика оборудовании
‐ простота обновления и
развертывания
C C C C C C
1 2 3 4 5 6
Схема индекса
столбцового
хранилища
23
Структура индекса хранилища данных,
работающего в памяти
Сегменты и группы строк
Сегменты
• Сегмент содержит значения из одного столбца
и набора строк
C1
C2
C3
C4
C5
C6
• Сегменты, охватывающие один и тот же набор
строк, составляют группу строк
• Данные в сегментах подвергаются сжатию?
• Каждый сегмент хранится в отдельном объекте
LOB-типа
Группы
строк
• Сегмент — единица обмена данными между
диском и памятью
24
Индекс хранилища данных, работающего в памяти
Обработка примера
25
Горизонтальное секционирование
Группы строк
26
Вертикальное секционирование
Сегменты
27
Сжатие каждого сегмента*
Степень сжатия сегментов варьируется
*Этапы кодировки и изменения порядка
следования не показаны
28
Получение только нужных столбцов
Исключение сегмента
29
Получение только нужных столбцов
Исключение сегментов
30
Хранилище данных с обработкой в
оперативной памяти
Поддержка кластеризации и обновления
• Быстрое выполнение запросов к
хранилищу
‐ Ускорение более чем в десять раз
• Отсутствие потребности в отдельной
таблицы для базы данных
‐ Экономия места
• Возможность вставки, обновления и
удаления данных
‐ Простота управления
• Экономия места и простота управления
‐ Поддержка большего количества типов данных
31
e
Столбцовое
хранилище
•
C1
C1
C2
C2
C3
C3
C4
C4
C5
C5
C6
•
C6
Переносчик кортежей
Дельта-хранилище
(строковое)
Обновляемый индекс столбцового хранилища
Таблица состоит из столбцового и строкового
хранилищ
Для операций DML (UPDATE, DELETE, INSERT)
используется дельта-хранилище
•
Значения INSERT
•
DELETE
Логическая операция
•
•
•
•
–
Всегда выполняется в дельта-хранилище
–
Данные физически удаляются после выполнения
REBUILD.
UPDATE
–
DELETE затем INSERT.
–
Если в пакете меньше 100 тыс. строк, вставки
отправляются в дельта-хранилище, в противном
случае — в столбцовое
BULK INSERT
SELECT
Объединяет данные из столбцового и строкового
хранилищ — внутренняя операция UNION
– Переносчик кортежей преобразует данные в
столбцовый формат после заполнения сегмента
(по достижении миллиона строк).
– Команда REORGANIZE запускает переносчик
кортежей
–
Сравнение экономии места
Таблица из 101 млн строк + индекс
33
Коротко об усовершенствовании столбцового
хранилища
Что нового
‐ Кластеризованный, обновляемый столбцовый индекс
‐ Дополнительный уровень сжатия — архивный
‐ Глобальная пакетная агрегация
Главные преимущества
‐ Высокоскоростной движок хранилища данных
 Возможность продолжать выполнение запросов во время обновления без сброса и
повторного создания индекса или изменения секций
‐ Колоссальная экономия места на диске благодаря сжатию данных
 Возможность сжать данные в 5-15 раз с использованием архивной посекционной
компрессии
‐ Более быстрая и эффективная (с меньшим расходом памяти) пакетная обработка
запросов при использовании пакетного режима взамен строкового
Модуль 3: Гибридные сценарии SQL
Server 2014
Виртуальные
машины Azure и
БД
Интеграция
локальных сред с
Azure
Развертывание и
бэкап в Azure
Гибридные облачные решения
Geo-replication
Восстановление VM
Развертывание БД на Azure ВМ
• Новый мастер для развертывания БД в SQL
Server на Azure ВМ.
• ВМ также может быть создана при
необходимости.
• Легко использовать
•
Отлично подходит для администраторов БД на
этапе ознакомления с Azure и для «ad hoc»
сценариев.
• Скрытая комплексность
•
Детальные знания в Azure не нужны.
•
Почти без затрат: определяющим фактором для
переноса БД является её размер.
Резервное копирование в Windows Azure
Преимущества для пользователя
SQL Server поддерживает резервное копирование и восстановление из хранилища BLOBобъектов Windows Azure (командлеты UI, T-SQL, PowerShell)
Основное преимущество: использование хранилища BLOB-объектов Windows
Azure
Гибкое, надежное (аварийное восстановление 3 копий) и безграничное хранилище
Больше не нужно искать место для хранения резервных копий
Не нужны дополнительные сотрудники, отвечающие за резервное копирование
CREATE CREDENTIAL mystoragecred
WITH IDENTITY = ‘mystorage',
SECRET = ‘<your storage access key>
BACKUP DATABASE mydb TO URL ='https://mystorage.blob.core.windows.net/backup-container/mydb20130411.bak'
WITH CREDENTIAL = ‘mystoragecred',
FORMAT, COMPRESSION, STATS = 5,
MEDIANAME = ‘mydb backup 20130411', MEDIADESCRIPTION = 'Backup of mydb'
Резервное копирование в Azure из SSMS
 SSMS 2014 графически поддерживает:
 Простая конфигурация UI.
 Легкое создание под облачными правами.
 Без допрасходов.
 Backup to Azure Tool (бесплатная)
 Позволяет напрямую копировать файлы с
поддерживаемых версий в хранилище Azure.
(http://go.microsoft.com/fwlink/?LinkID=324399)
Модуль 4: SQL Server 2014 высокая
доступность
Always on группы
Отказоустойчивы
е кластеры
Облачное
аварийное
восстановление
Что такое Log Shipping?
Log shipping состоит из 3 операций:
1. Бэкап лога транзакций с первичного
сервера.
2. Копирование лога транзакций на
вторичный сервер.
3. Восстановление лога на вторичный
сервер.
О Log Shipping:
• Лог может быть сохранен на несколько
вторичных установок.
• В таких случаях операции 2 и 3
дублируются на каждую вторичную
установку.
• Конфигурация лог шиппинга
автоматически не отказоустойчива с
первичного сервера на вторичный.
Что такое зеркалирование баз?
Зеркалирование баз
• Сохраняет 2 копии одной базы,
которые должны храниться в разных
установках SQL сервера.
• Обычно эти установки находятся в
разных локациях.
• Один сервер обслуживает базу для
клиентов (основной сервер). Другая
установка играет роль горячего или
«теплого» сервера в ожидании
(зеркальный сервер).
• Когда зеркалирование БД развернуто
в рабочей среде, основной сервер
является рабочей базой.
• Автоматическая отказоустойчивость
реализуется с помощью свидетеля.
Группы доступности AlwaysOn
Высокая производительность
• Одно решение для управления; группы доступности
для кластера, зеркалирования, лог шиппинга и
диагностики.
• Мастера для облегчения установки; дашборды для
улучшения восприятия
• Высокое время доступности (Uptime) и высокая
утилизация железа H/W
• Несколько активных вторичных установок (до 8).
Отказоустойчивость баз на нескольких установках
• Быстрое подключение и восстановление страниц
• Выгрузка и распределение нагрузок на вторичные
установки.
Дополнительные преимущества
• Масштабирование по требованию; распределение
нагрузки на читаемые реплики
• Производительность распределяется переносом
нагрузок с первичного на вторичное хранилище
(включая бэкапы).
Availability Mode Replica Property
• В AlwaysOn Группах доступности Режим
доступности – это владение репликой, которое
определяет может ли данная реплика
запускаться в синхронном режиме:
- synchronous-commit mode
 Если данная реплика сконфигурирована
в таком режиме, основная реплика
ожидает вторичную реплику для
подтверждения фиксации лога
- asynchronous-commit mode
 Если вторичная реплика
сконфигурирована в таком режиме
asynchronous-commit mode, первичная
реплика не ожидает, что вторичная
реплика зафиксирует лог
Улучшения групп доступности
Увеличенное число вторичных баз
•
•
•
SQL Server 2012: Заказчики используют максимально 4 вторичных
реплики для чтения для разгрузки задач по чтению
-
Одна технология для настройки и управления
-
Высокая пропускная способность (~7x) по сравнению с
репликацией.
Заказчики просят больше реплик
-
Сокращение времени ожидания запросов (в
геораспределенных окружениях).
-
Масштабирование задач по чтению.
SQL Server 2014: максимально 8 вторичных
-
Максимально 2 синхронизируемых вторичных реплики для
высокой доступности.
-
Задержки зависят от сетевой латентности и I/O.
Зачем нужна возможность облачного
аварийного восстановления для SQL Server?
Из-за непредвиденного события локальный SQL Server может
оказаться недоступным;
- временно (например, из-за сбоя шлюза);
- перманентно (например, из-за наводнения).
Собственная среда аварийного восстановления это дорого:
- аренда площади, техническое обслуживание;
- оборудование;
- эксплуатационные затраты.
49
Группы доступности для облачного
аварийного восстановления
• Группы доступности дают дополнительные
преимущества:
• интегрированный механизм аварийного восстановления
высокой готовности;
• соединение приложений для отчетности и аналитики;
• перенос приложений и их использование с локальными
дополнительными копиями;
• соединение приложений для отчетности и аналитики.
• Перенос приложений и их использование с
локальными дополнительными копиями
• соответствие нормативным требованиям
• Группы доступности требуют:
• использования единого домена Windows;
• наличия контроллера домена Active Directory.
50
Модуль 8: Подведение итогов
Ahead of the Game
Marketing Content
Компетенции
http://aka.ms/AheadoftheGame
http://partner.Microsoft.com
Учебный Центр
https://mspartner.microsoft.com/en/us/Pages
/Training/partner-learning-center.aspx
Microsoft Virtual
Academy
http://www.microsoftvirtualacademy.com/
ISV Upgrade Support
Email isvupgrade@microsoft.com with app
name and name of ISV
53
Download