34

Что нового в SQL Server 2014

Embed Size (px)

Citation preview

Page 1: Что нового в SQL Server 2014
Page 2: Что нового в SQL Server 2014
Page 3: Что нового в SQL Server 2014

Андрей

Коршиков

[email protected]

@AndreyKorshikov

PASS Regional Mentor for

Central Eastern Europe

Page 4: Что нового в SQL Server 2014

• Минимальные требования: Windows 7 SP1 или Windows Server 2008 R2.

• SysPrep поддерживается для любых видов установки, в том числе failover cluster.

• Обновление с SQL Server 2005 поддерживается (базы данных должны иметь уровень совместимости 100), но установка side-by-side не поддерживается.

• Stardard Edition теперь поддерживает 128 GB оперативной памяти (было 64 GB).

Установка SQL Server 2014

Page 5: Что нового в SQL Server 2014

• Buffer pool – область памяти, используемая SQL Server для кэширования страниц данных, индексов, служебных страниц

• Если нужные данные не найдены в Buffer pool, они должны быть помещены туда после чтения с диска

• Чем больше памяти доступно, тем больше вероятность повторного обращения к странице в пяти без ожидания IO

Что такое Buffer Pool

Page 6: Что нового в SQL Server 2014

• «Актуальные» страницы располагать в быстром кэше автоматически

• Не переделывать схему БД

• Должно работать прозрачно на уровне сервера

Хорошо бы…

Page 7: Что нового в SQL Server 2014

• Поддерживается в Enterprise, Business Intelligence и Standard редакциях.

• Позволяет решить проблему нехватки оперативной памяти для кэширования часто используемых данных (в основном случайное чтение) за счет использования SSD.

Buffer Pool Extension

https://www.techdays.ru/videos/8907.html

Page 8: Что нового в SQL Server 2014

https://msdn.microsoft.com/ru-ru/library/dn133176.aspx

Page 9: Что нового в SQL Server 2014

ALTER SERVER CONFIGURATION

SET <optionspec>

[;]

<buffer_pool_extension>::=

BUFFER POOL EXTENSION

{ ON ( FILENAME = 'os_file_path_and_name' , SIZE = <size_spec> )

| OFF }

<size_spec> ::=

{ size [ KB | MB | GB ] }

Buffer Pool Extension

Page 10: Что нового в SQL Server 2014

• Один файл расширения

• Объем активных данных меньше чем объем BPE

• Ускоряется чтение, на запись не влияет

• Ограничение по объему расширения – 32х, рекомендовано 4х-8х от объема RAM

• Снижение производительности при отключении BPE до перезагрузки сервера

Недостатки и ограничения

Page 11: Что нового в SQL Server 2014

• Основные моменты:• Операция COMMIT не ждет записи в журнал транзакций.• Одновременно выполняемые транзакции с меньшей долей

вероятности буду соперничать за IO операции при записи в журнал транзакций (запись идет позже большими блоками).

• Доступен во всех редакциях SQL Server 2014.

• У вас по прежнему могут быть проблемы при записи в журнал транзакций, если вы пишите быстрее, чем успевает записывать дисковый массив.

Delayed Durability (Lazy Commit)

http://channel9.msdn.com/Events/Data-Platform-Day-2014/Data-Platform-Day-2014/Delayed-Durability

Отложенная устойчивая транзакция

Page 12: Что нового в SQL Server 2014

• Вы готовы потерять часть данных в случае сбоя!!!

• У вас наблюдается узкое место при записи в журнал транзакций (отложенная запись большими блоками может быть эффективнее, чем много маленьких)

• Наблюдается высокий уровень конкуренции. Блокировки удерживаются до конца транзакции. DD уменьшает время выполнения операции COMMIT.

Использование Delayed Durability

Page 13: Что нового в SQL Server 2014

ALTER DATABASE … SET DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

• DISABLED – отключена, все транзакции логируютсяперед завершением

• ALLOWED – контроль над durability осуществляется на уровне транзакции

• FORCED – все транзакции используют DD

Настройка на уровне БД

Page 14: Что нового в SQL Server 2014

COMMIT [ { TRAN | TRANSACTION } ] [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ]

Transact-SQL

Page 15: Что нового в SQL Server 2014

CREATE PROCEDURE <procedureName> …WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNERAS BEGIN ATOMIC WITH (

DELAYED_DURABILITY = ON,TRANSACTION ISOLATION LEVEL = SNAPSHOT,LANGUAGE = N'English'…

)END

Natively Compiled Stored Procedures

Page 16: Что нового в SQL Server 2014

Параметр фиксации/параметр базы

данных DELAYED_DURABILITY = DISABLED DELAYED_DURABILITY = ALLOWED DELAYED_DURABILITY = FORCED

DELAYED_DURABILITY = OFF

In-Memory OLTP только транзакции.

Транзакция является полностью

устойчивой.

Транзакция является полностью

устойчивой.

Транзакция является отложенной

устойчивой.

DELAYED_DURABILITY = ON

In-Memory OLTP только транзакции.

Транзакция является полностью

устойчивой.

Транзакция является отложенной

устойчивой.

Транзакция является отложенной

устойчивой.

DELAYED_DURABILITY = OFF

Межбазовые или распределенные

транзакции.

Транзакция является полностью

устойчивой.

Транзакция является полностью

устойчивой.

Транзакция является полностью

устойчивой.

DELAYED_DURABILITY = ON

Межбазовые или распределенные

транзакции.

Транзакция является полностью

устойчивой.

Транзакция является полностью

устойчивой.

Транзакция является полностью

устойчивой.

https://msdn.microsoft.com/ru-ru/library/dn449490.aspx

Page 17: Что нового в SQL Server 2014

• Когда буфер заполняется и идет запись его в журнал транзакций.

• Вызов sp_flush_log.

• Если выполняется транзакция с полным логированием, то все транзакции до нее, которые были выполнены как DD – тоже записываются в журнал.

Запись транзакций в журнал

Page 18: Что нового в SQL Server 2014

• Resource Governor был изначально представлен в SQL Server 2008 и позволял управлять потреблением ресурсов между различными пользователями.

• В SQL Server 2014 добавлена поддержка управления IO ресурсами.

IO Resource Governance

Page 19: Что нового в SQL Server 2014

https://msdn.microsoft.com/ru-ru/library/bb933866.aspx

Page 20: Что нового в SQL Server 2014
Page 21: Что нового в SQL Server 2014

Конфигурация ресурсных пуловALTER RESOURCE POOL Customer2Pool WITH (MIN_IOPS_PER_VOLUME=650);

ALTER RESOURCE GOVERNOR RECONFIGURE;

GO

Page 22: Что нового в SQL Server 2014
Page 23: Что нового в SQL Server 2014

• Одно из ключевых изменений

• Появляются абсолютно новые структуры для хранения данных в памяти

• Добавляется возможность создавать хранимые процедуры, которые будут компилироваться

• Прирост производительности может составлять до 30 раз

In-Memory OLTP

https://www.techdays.ru/videos/8906.html

Page 24: Что нового в SQL Server 2014

• Играет ключевую роль при выборе плана выполнения для запроса.

• Требует уровня совместимости БД 120.• Если БД находится в уровне совместимости 110, можно использовать trace

flag 2312.

• Trace flag 9481 можно использовать для принудительного использования версии 70.

Cardinality Estimation

Page 25: Что нового в SQL Server 2014

Приносит некоторые улучшения в предыдущую версию, например:• Для только что добавленных строк по возрастающему

значению использует значение среднего количества строк.

• Предполагает, что предикаты на одной таблице коррелированы.

SELECT year, purchase_price FROM dbo.Cars WHERE Make=‘Honda’ AND Model=‘Civic’

• Если в запросе участвуют 2 и более таблиц, то предикаты на них считаются независимыми.

Cardinality Estimation

Page 26: Что нового в SQL Server 2014

• Возможность размещать файлы данных в Windows Azure

• Создание резервных копий в Windows Azure

• Мастер переноса баз данных в Windows Azure (в SQL Server Management Studio 2014)

CloudOS

Page 27: Что нового в SQL Server 2014

Файлы данных в Windows Azure

Page 28: Что нового в SQL Server 2014

• Максимальное количество реплик увеличено с 4 до 8

• Добавлена поддержка реплик в Windows Azure(доступен мастер для настройки)

• Вторичная реплика при отключении от первичной или при потере кластером кворума остается доступной на чтение

AlwaysOn

Page 29: Что нового в SQL Server 2014

• Предоставляет дополнительную защиту для ваших резервных копий, в том числе тех, которые создаются в Windows Azure.

• Поддерживаются следующие алгоритмы: AES 128, AES 192, AES 256, and Triple DES. Шифрование происходит с помощью сертификата или ассиметричного ключа.

• Можно интегрировать ключи шифрования с провайдерами Extended Key Management (EKM).

Backup Encryption

Page 30: Что нового в SQL Server 2014

BACKUP DATABASE [MYTestDB]

TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Backup\MyTestDB.bak'

WITH

COMPRESSION,

ENCRYPTION

(

ALGORITHM = AES_256,

SERVER CERTIFICATE = BackupEncryptCert

),

STATS = 10

GO

Backup Encryption

Page 31: Что нового в SQL Server 2014

• $encryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert”

• Backup-SqlDatabase -ServerInstance . -Database "MyTestDB" -BackupFile "MyTestDB.bak" -CompressionOption On -EncryptionOption$encryptionOption

Backup Encryption (Powershell)

Page 32: Что нового в SQL Server 2014

ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name

SWITCH [ PARTITION source_partition_number_expression ]

TO target_table [ PARTITION target_partition_number_expression ] [ WITH ( <low_lock_priority_wait> ) ]

<low_priority_lock_wait>::=

{

WAIT_AT_LOW_PRIORITY ( MAX_DURATION = <time> [ MINUTES ], ABORT_AFTER_WAIT = { NONE | SELF | BLOCKERS } )

}

Переключение секций и онлайн перестроение индексов

Page 33: Что нового в SQL Server 2014

• sys.dm_exec_query_profiles – мониторинг в реальном времени текущего состояния выполнения запросов.

• SELECT … INTO – может выполняться параллельно

• Columnstore Indexes – теперь обновляемые

• Статистика может создаваться для отдельных секций

Еще немного вкусностей

Page 34: Что нового в SQL Server 2014