20.5.26

«Нет, мы не обновляемся. Что мы упускаем?»

Автор: Thomas Rushton, “No, we’re not upgrading. What are we missing out on?”

SQL Server 2016 — покойся с миром, RIP, скатертью дорога (хотя последнее звучит как-то слишком сурово). SQL Server 2016 выходит из расширенной поддержки (extended support) 14 июля — в День взятия Бастилии, без комментариев — 2026 года. Это следует из политики фиксированного жизненного цикла Microsoft (Fixed Lifecycle Policy): выпуск, примерно пять лет основной поддержки (mainstream support), в течение которой вы получаете исправления, обновления безопасности, улучшения производительности и функциональности, и ещё примерно пять лет расширенной поддержки (extended support), в течение которой вы получаете обновления безопасности и не многое другое. После этой даты Microsoft крайне редко выпускает какие-либо обновления за пределами платной программы расширенных обновлений безопасности (Extended Security Update, ESU), поэтому продолжение использования продукта, срок поддержки которого истёк (EOL product), следует рассматривать как экстренную меру только для краткосрочного использования.

Поскольку SQL Server 2016 был выпущен в июне 2016 года, с тех пор вышло несколько более новых версий — 2017, 2019, 2022 и, всего несколько месяцев назад, SQL Server 2025. Учитывая, что некоторые из этих версий уже давно находятся в периоде расширенной поддержки, давайте поможем вам сосредоточиться на необходимости обновления, показав даты жизненного цикла для этих других версий:

ВерсияДата выпускаОкончание основной поддержкиОкончание расширенной поддержки
SQL Server 20162016-06-012021-07-132026-07-14
SQL Server 20172017-09-292022-10-112027-10-12
SQL Server 20192019-11-042025-02-282030-01-08
SQL Server 20222022-11-162028-01-112033-01-11
SQL Server 20252025-11-182031-01-062036-01-06

Да, я использую даты в формате ISO 8601. Они однозначны, смиритесь с этим. Количество систем, с которыми я работал и которые меня подводили из-за неожиданных форматов дат по умолчанию из-за странных настроек конфигурации, слишком велико.

Каждая из этих новых версий принесла улучшения в производительности и функциональности. Вместо того чтобы рассматривать причины, по которым вам больше не следует использовать SQL Server 2016 с точки зрения соответствия требованиям или отсутствия поддержки, эта статья рассматривает некоторые новые (ну, довольно новые — некоторым из них уже почти десять лет) интересные возможности, которые вы упускаете.

Мои источники включают различные статьи «Что нового в SQL Server <версия>» и книги Боба Уорда (Bob Ward). Ссылки ниже:

SQL Server 2017

Очевидно, с момента выхода прошло уже много времени, и память о том, что было хорошего, стирается. Однако, глядя на страницу «Что нового», я вижу несколько вещей, которые оказались полезными для наших клиентов даже в последние несколько недель:

  • Интеллектуальная обработка запросов / адаптивная обработка запросов (Intelligent query processing / adaptive query processing) — это был первый проход, который обеспечил базовую основу для многих последующих улучшений в обработчике запросов. Количество функций в первом проходе невелико, и у одного клиента возникли проблемы с чередующимся выполнением (interleaved execution), но это была отправная точка для больших свершений.
  • Новые динамические административные представления (DMV), включая dm_db_log_info (замена для DBCC LOGINFO), который позволяет гораздо легче предсказывать и решать потенциальные проблемы с производительностью журнала транзакций до того, как они станут реальной проблемой.

SQL Server 2019

На обложке книги Боба в качестве подзаголовка значится «Включая кластеры больших данных и машинное обучение».

Некоторые из функций, которые мы используем начиная с SQL Server 2019 и новее:

  • Оптимизированные для памяти метаданные TempDB (Memory-optimised TempDB Metadata) — для улучшения производительности рабочих нагрузок, интенсивно использующих tempdb. Это серьёзно снижает конкуренцию в tempdb, включая различные управляющие структуры внутри tempdb. Арвиндер (Arvinder), другой член команды управляемых услуг Coeo, написал более подробную статью об этом, показывающую симптомы, которые были устранены с помощью этой функции. Прочитайте её здесь — The Ghost in the Machine: How a Simple SELECT Paralyzed a 1TB SQL Server.
  • Возобновляемые перестроения индексов (Resumable index rebuilds) — возможность приостанавливать и возобновлять операции индексирования означает, что даже большие индексы теперь могут получать обслуживание, потенциально освобождая значительное дисковое пространство и улучшая производительность.
  • Классификация данных и аудит (Data Classification and auditing) — это набор инструментов для решения проблем безопасности и конфиденциальности, связанных с GDPR. У инструмента классификации есть недостатки — он смотрит только на имена столбцов; однако в SQL Server Management Studio встроены инструменты для поддержки этого уровня активности по классификации данных.

SQL Server 2022

На обложке книги Боба написано «Гибридная платформа данных, основанная на безопасности, производительности и доступности».

Для меня большая часть хорошего в SQL Server 2022 — это улучшения, а не яркие новые функции. Такие улучшения, как:

  • Интеллектуальная обработка запросов (IQP), интеллект запросов (Query Intelligence) и другие улучшения обратной связи оптимизатора запросов — включая то, что SQL Server стал более осведомлён о своей собственной производительности и вносит изменения в планы запросов на основе изменений производительности.
  • TempDB получает дальнейшие улучшения производительности, основанные на работе, проделанной в SQL Server 2019.
  • Сжатие XML — наконец-то!
  • Главная новая функция — изолированные группы доступности (Contained Availability Groups) — наконец-то снимает накладные расходы на запуск процессов для синхронизации заданий агента SQL Server и учётных записей между всеми репликами, на которых размещены группы доступности. Однако есть несколько «подводных камней», главный из которых заключается в том, что существующую группу доступности нельзя обновить до изолированной. Возникают некоторые накладные расходы, так как вам нужно будет подключаться к прослушивателю, а не к экземпляру, и это касается даже административной работы. Мы ждали этого долгое время — я ждал этой функциональности с момента первого анонса групп доступности в 2012 году, и Microsoft сама анонсировала её для SQL Server 2019, но была вынуждена отозвать, так как она не была готова. К сожалению, у одного из наших клиентов это прошло не совсем гладко, и мы до сих пор не совсем уверены, почему возникли проблемы, хотя удаление базы данных из группы доступности и повторное добавление, похоже, решило проблему.

SQL Server 2025

На этот раз на обложке книги Боба написано «Корпоративная база данных, готовая к искусственному интеллекту, с интеграцией Microsoft Fabric», и он посвящает несколько глав новой функциональности SQL Server, которая поддерживает и использует ИИ.

Учитывая, что SQL Server 2025 относительно новый, этот раздел будет больше о функциях, которые я с нетерпением жду внедрения у клиентов, а не о функциях, которые мы уже используем.

  • JSON-данные наконец-то получают собственный тип данных со встроенным сжатием и индексированием, в дополнение к функциям, связанным с JSON, которые были представлены в этом и предыдущих выпусках.
  • Улучшения резервного копирования SQL Server.
    • Теперь мы можем создавать полные (не copy-only) резервные копии на вторичных репликах, полностью убирая все задания резервного копирования с первичной реплики.
    • Появился новый алгоритм сжатия, который считается более быстрым и эффективным — очевидно, что, как и для всех алгоритмов сжатия, ваши данные определяют, насколько он хорош. И некоторые из нас помнят, как их кусали ранние попытки Microsoft с ошибками в утилите сжатия дисков DoubleSpace ещё в прошлом тысячелетии (боже, я чувствую себя старым, когда пишу это), поэтому предоставят другим убедиться, что всё в порядке, прежде чем использовать его.
    • Резервное копирование в неизменяемое (immutable) хранилище Azure — при резервном копировании по URL процедура резервного копирования выполняет только одну фиксацию записи, что означает, что резервные копии могут напрямую помещаться в этот тип хранилища. Было бы хорошо, если бы они также перенесли это для некоторых других хранилищ резервных копий, которые работают аналогичным образом.
  • Fabric — в частности, зеркалирование (mirroring) баз данных в Fabric. У нас есть несколько клиентов, которые проходят через различные процессы репликации и другие процедуры ETL, чтобы загрузить свои данные в Fabric, Databricks и т.п. Вместо того чтобы проходить через все эти мучения, теперь мы можем просто зеркалировать данные напрямую в Fabric и использовать их там почти в реальном времени.

SQL Server Management Studio

SQL Server Management Studio (SSMS) также получил много внимания за эти годы. Однако, когда вы обновляете свои экземпляры SQL Server, вы также должны обновлять SSMS, чтобы получить доступ к новой функциональности в графическом интерфейсе, который используют многие из нас. SSMS обновляется регулярно — в настоящее время до версии 22.6.0, с точечными обновлениями, выпускаемыми каждый месяц — как и всё остальное. С момента отделения SSMS от основного дистрибутива SQL Server, начиная с SQL Server 2016, обновление SSMS стало отдельным действием — которое довольно часто упускают из виду.

Я не собираюсь углубляться в историю версий и обновлений функций — смотрите Release Notes for SSMS от Microsoft, если вам интересно.

Так чего же вы ждёте?

Приведённые выше примеры — лишь малая часть доступной новой функциональности. Чего не хватает? Что бы вы хотели видеть в SQL Server? Что должно появиться, прежде чем вы сможете выполнить миграцию? Вы сообщали об этом Microsoft? Существует множество способов внести предложения по функциональности SQL Server, сообщить об ошибках и т.д. Также существуют страницы обратной связи для SSMS.



Комментариев нет:

Отправить комментарий