Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

535 views

Published on

доклад в Тюмени, февраль 2015

Published in: Education
  • Be the first to comment

  • Be the first to like this

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

  1. 1. Андрей Коршиков korshikov@sqlpass.org @AndreyKorshikov PASS Regional Mentor for Central Eastern Europe
  2. 2. • Минимальные требования: 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
  3. 3. • Buffer pool – область памяти, используемая SQL Server для кэширования страниц данных, индексов, служебных страниц • Если нужные данные не найдены в Buffer pool, они должны быть помещены туда после чтения с диска • Чем больше памяти доступно, тем больше вероятность повторного обращения к странице в пяти без ожидания IO Что такое Buffer Pool
  4. 4. • «Актуальные» страницы располагать в быстром кэше автоматически • Не переделывать схему БД • Должно работать прозрачно на уровне сервера Хорошо бы…
  5. 5. • Поддерживается в Enterprise, Business Intelligence и Standard редакциях. • Позволяет решить проблему нехватки оперативной памяти для кэширования часто используемых данных (в основном случайное чтение) за счет использования SSD. Buffer Pool Extension https://www.techdays.ru/videos/8907.html
  6. 6. https://msdn.microsoft.com/ru-ru/library/dn133176.aspx
  7. 7. 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
  8. 8. • Один файл расширения • Объем активных данных меньше чем объем BPE • Ускоряется чтение, на запись не влияет • Ограничение по объему расширения – 32х, рекомендовано 4х-8х от объема RAM • Снижение производительности при отключении BPE до перезагрузки сервера Недостатки и ограничения
  9. 9. • Основные моменты: • Операция COMMIT не ждет записи в журнал транзакций. • Одновременно выполняемые транзакции с меньшей долей вероятности буду соперничать за IO операции при записи в журнал транзакций (запись идет позже большими блоками). • Доступен во всех редакциях SQL Server 2014. • У вас по прежнему могут быть проблемы при записи в журнал транзакций, если вы пишите быстрее, чем успевает записывать дисковый массив. Delayed Durability (Lazy Commit) http://channel9.msdn.com/Events/Data-Platform-Day-2014/Data-Platform-Day-2014/Delayed-Durability Отложенная устойчивая транзакция
  10. 10. • Вы готовы потерять часть данных в случае сбоя!!! • У вас наблюдается узкое место при записи в журнал транзакций (отложенная запись большими блоками может быть эффективнее, чем много маленьких) • Наблюдается высокий уровень конкуренции. Блокировки удерживаются до конца транзакции. DD уменьшает время выполнения операции COMMIT. Использование Delayed Durability
  11. 11. ALTER DATABASE … SET DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED } • DISABLED – отключена, все транзакции логируются перед завершением • ALLOWED – контроль над durability осуществляется на уровне транзакции • FORCED – все транзакции используют DD Настройка на уровне БД
  12. 12. COMMIT [ { TRAN | TRANSACTION } ] [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ] Transact-SQL
  13. 13. CREATE PROCEDURE <procedureName> … WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER AS BEGIN ATOMIC WITH ( DELAYED_DURABILITY = ON, TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'English' … ) END Natively Compiled Stored Procedures
  14. 14. Параметр фиксации/параметр базы данных 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
  15. 15. • Когда буфер заполняется и идет запись его в журнал транзакций. • Вызов sp_flush_log. • Если выполняется транзакция с полным логированием, то все транзакции до нее, которые были выполнены как DD – тоже записываются в журнал. Запись транзакций в журнал
  16. 16. • Resource Governor был изначально представлен в SQL Server 2008 и позволял управлять потреблением ресурсов между различными пользователями. • В SQL Server 2014 добавлена поддержка управления IO ресурсами. IO Resource Governance
  17. 17. https://msdn.microsoft.com/ru-ru/library/bb933866.aspx
  18. 18. Конфигурация ресурсных пулов ALTER RESOURCE POOL Customer2Pool WITH (MIN_IOPS_PER_VOLUME=650); ALTER RESOURCE GOVERNOR RECONFIGURE; GO
  19. 19. • Одно из ключевых изменений • Появляются абсолютно новые структуры для хранения данных в памяти • Добавляется возможность создавать хранимые процедуры, которые будут компилироваться • Прирост производительности может составлять до 30 раз In-Memory OLTP https://www.techdays.ru/videos/8906.html
  20. 20. • Играет ключевую роль при выборе плана выполнения для запроса. • Требует уровня совместимости БД 120. • Если БД находится в уровне совместимости 110, можно использовать trace flag 2312. • Trace flag 9481 можно использовать для принудительного использования версии 70. Cardinality Estimation
  21. 21. Приносит некоторые улучшения в предыдущую версию, например: • Для только что добавленных строк по возрастающему значению использует значение среднего количества строк. • Предполагает, что предикаты на одной таблице коррелированы. SELECT year, purchase_price FROM dbo.Cars WHERE Make=‘Honda’ AND Model=‘Civic’ • Если в запросе участвуют 2 и более таблиц, то предикаты на них считаются независимыми. Cardinality Estimation
  22. 22. • Возможность размещать файлы данных в Windows Azure • Создание резервных копий в Windows Azure • Мастер переноса баз данных в Windows Azure (в SQL Server Management Studio 2014) CloudOS
  23. 23. Файлы данных в Windows Azure
  24. 24. • Максимальное количество реплик увеличено с 4 до 8 • Добавлена поддержка реплик в Windows Azure (доступен мастер для настройки) • Вторичная реплика при отключении от первичной или при потере кластером кворума остается доступной на чтение AlwaysOn
  25. 25. • Предоставляет дополнительную защиту для ваших резервных копий, в том числе тех, которые создаются в Windows Azure. • Поддерживаются следующие алгоритмы: AES 128, AES 192, AES 256, and Triple DES. Шифрование происходит с помощью сертификата или ассиметричного ключа. • Можно интегрировать ключи шифрования с провайдерами Extended Key Management (EKM). Backup Encryption
  26. 26. BACKUP DATABASE [MYTestDB] TO DISK = N'C:Program FilesMicrosoft SQL ServerMSSQL12.MSSQLSERVERMSSQLBackupMyTestDB.bak' WITH COMPRESSION, ENCRYPTION ( ALGORITHM = AES_256, SERVER CERTIFICATE = BackupEncryptCert ), STATS = 10 GO Backup Encryption
  27. 27. • $encryptionOption = New-SqlBackupEncryptionOption - Algorithm Aes256 -EncryptorType ServerCertificate - EncryptorName "BackupCert” • Backup-SqlDatabase -ServerInstance . -Database "MyTestDB" -BackupFile "MyTestDB.bak" - CompressionOption On -EncryptionOption $encryptionOption Backup Encryption (Powershell)
  28. 28. 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 } ) } Переключение секций и онлайн перестроение индексов
  29. 29. • sys.dm_exec_query_profiles – мониторинг в реальном времени текущего состояния выполнения запросов. • SELECT … INTO – может выполняться параллельно • Columnstore Indexes – теперь обновляемые • Статистика может создаваться для отдельных секций Еще немного вкусностей

×