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