SQL Server 2022 принёс Parameter Sensitive Plan Optimization, улучшенный Query Store, интеграцию с Azure, поддержку S3-бэкапов и Ledger для верификации данных. Обновление с 2019 на 2022 имеет смысл для большинства проектов, но не всегда критично. Давайте разберём по пунктам, чтобы вы могли принять взвешенное решение (а не просто потому что «новое значит лучше»).
Ключевые отличия: коротко
| Функция | SQL Server 2019 | SQL Server 2022 |
|---|---|---|
| Query Store | Выключен по умолчанию | Включён по умолчанию |
| Intelligent Query Processing | Batch mode, Table variable deferred compilation | + PSP optimization, DOP feedback, CE feedback |
| Бэкап в S3 | Нет | Да |
| Ledger | Нет | Да |
| Azure интеграция | Базовая | Глубокая (Synapse Link, Managed Instance Link) |
| Contained AG | Нет | Да |
| Поддержка | Mainstream до 2025, Extended до 2030 | Mainstream до 2028, Extended до 2033 |
Intelligent Query Processing: главное улучшение
Вот в чём прикол: SQL Server 2022 стал заметно умнее в оптимизации запросов.
Parameter Sensitive Plan Optimization (PSP). Это решение проблемы parameter sniffing. Короче, когда один и тот же запрос с разными параметрами требует разных планов выполнения, 2019 выбирает один план и использует для всех. 2022 создаёт несколько планов под разные диапазоны значений.
Если честно, parameter sniffing это головная боль каждого DBA. Решение в 2022 не идеальное, но закрывает 70-80% проблемных случаев автоматически.
Мой коллега Сергей, DBA в интернет-магазине из Москвы, после обновления с 2019 на 2022 (сервер HP ProLiant DL380 Gen10, 128 ГБ RAM) заметил, что три проблемных отчёта, которые периодически тормозили, начали работать стабильно. PSP автоматически решил проблему, которую Сергей раньше костылил через OPTIMIZE FOR UNKNOWN.
Degree of Parallelism (DOP) Feedback. SQL Server сам подбирает оптимальную степень параллелизма для запросов. В 2019 приходилось настраивать MAXDOP вручную.
Cardinality Estimation (CE) Feedback. Если оптимизатор ошибся в оценке количества строк, 2022 запомнит и скорректирует план в следующий раз.
Query Store по умолчанию
В 2019 Query Store выключен. В 2022 включён автоматически для новых баз. А зачем?
Query Store записывает историю планов выполнения запросов. Это позволяет:
- Найти запросы, которые стали работать медленнее (регрессии)
- Принудительно зафиксировать хороший план
- Анализировать производительность за период
На самом деле Query Store настолько полезен, что на 2019 его стоит включать вручную. В 2022 Microsoft просто сделала это по умолчанию.
-- Проверяем состояние Query Store
-- На 2022 для новых баз уже включён
SELECT name, is_query_store_on FROM sys.databases
-- Включаем Query Store на 2019 вручную
ALTER DATABASE [MyDatabase] SET QUERY_STORE = ON;
-- Настраиваем параметры (рекомендуемые)
ALTER DATABASE [MyDatabase] SET QUERY_STORE (
OPERATION_MODE = READ_WRITE,
MAX_STORAGE_SIZE_MB = 1024,
INTERVAL_LENGTH_MINUTES = 30
);Бэкапы в S3-совместимое хранилище
Знаете что, это удобно. SQL Server 2022 умеет бэкапить напрямую в S3.
-- Бэкап в MinIO (S3-совместимое хранилище)
-- Работает с AWS S3, MinIO, и другими S3-совместимыми
BACKUP DATABASE [MyDatabase]
TO URL = 's3://minio.company.local:9000/sql-backups/mydb.bak'
WITH CREDENTIAL = 'S3Credential', COMPRESSION;В 2019 бэкапы можно было отправлять только в Azure Blob Storage или на диск. S3-совместимость открывает двери к MinIO, AWS S3, Ceph и другим хранилищам.
Ledger: блокчейн для базы данных
Тут такое дело. Ledger это криптографическая верификация данных. Все изменения записываются в хэш-цепочку, которую невозможно подделать без обнаружения.
Зачем это нужно? Финансовые данные, аудит, compliance. Если кто-то изменил запись задним числом, Ledger это покажет.
Грубо говоря, это блокчейн внутри SQL Server. Но не тот хайповый блокчейн, а практичный инструмент для защиты целостности данных.
Contained Availability Groups
В 2019 при использовании Always On AG логины, задания Agent и настройки уровня сервера не реплицируются. Создали логин на primary, нужно вручную создать на secondary.
В 2022 появились Contained AG: метаданные уровня экземпляра реплицируются вместе с группой доступности. Логины, Agent Jobs, все синхронизируется автоматически.
По факту, это убирает огромную головную боль при failover. Раньше после переключения на secondary половина приложений не могла подключиться из-за отсутствующих логинов.
Производительность: реальные цифры
А ещё SQL Server 2022 быстрее на одном и том же железе.
Кстати, вот что замерил мой знакомый Павел, DBA в страховой компании из Санкт-Петербурга. Dell PowerEdge R750, 256 ГБ RAM, NVMe-диски. База 1С на 1.2 ТБ:
- Закрытие месяца: 2019 45 минут, 2022 38 минут (снижение на 15%)
- Построение отчёта по продажам: 2019 12 секунд, 2022 8 секунд
- Массовая загрузка данных: примерно одинаково
Не революция, но заметное улучшение. Особенно на аналитических запросах.
Стоит ли обновляться
Обновляйтесь если:
- Страдаете от parameter sniffing (PSP решает эту проблему)
- Нужна отказоустойчивость с Contained AG
- Планируете S3-бэкапы
- Хотите длинный цикл поддержки (до 2033)
- Используете Always On и устали синхронизировать логины
Можно подождать если:
- Всё работает стабильно, проблем с производительностью нет
- Приложения не протестированы на 2022
- Нет бюджета на новую лицензию прямо сейчас
Основная поддержка 2019 до 2025, расширенная до 2030. Время ещё есть. Но планировать миграцию стоит уже сейчас.
Как обновить 2019 до 2022
-- Перед обновлением проверяем совместимость
-- Database Compatibility Level
SELECT name, compatibility_level FROM sys.databases
-- После обновления базы останутся на уровне 150 (2019)
-- Можно повысить до 160 (2022) после тестирования
ALTER DATABASE [MyDatabase] SET COMPATIBILITY_LEVEL = 160
-- Используем Query Store для отслеживания регрессий
-- Перед обновлением включите Query Store на 2019На самом деле in-place upgrade с 2019 на 2022 работает хорошо. Но я всегда рекомендую side-by-side: ставите 2022 на новый сервер, переносите базы, тестируете, переключаете. Откат проще.
Где купить лицензию
Лицензии SQL Server 2022 Standard и Enterprise доступны в keytrust24.store. Если у вас 2019 и вы решили обновляться, нужна новая лицензия (Software Assurance позволяет бесплатный апгрейд, но не все его покупают). Ну и Windows Server для хостовой машины тоже в наличии.
Полная таблица отличий 2019 vs 2022
Знаете что? Давайте соберём все отличия в одном месте. Вот расширенная таблица для тех, кто хочет видеть полную картину.
| Категория | SQL Server 2019 | SQL Server 2022 |
|---|---|---|
| Compatibility Level | 150 | 160 |
| Query Store по умолчанию | Выключен | Включён |
| PSP Optimization | Нет | Да |
| DOP Feedback | Нет | Да |
| CE Feedback | Нет | Да |
| Optimized Plan Forcing | Нет | Да |
| Бэкап в S3 | Нет | Да |
| Ledger | Нет | Да |
| Contained AG | Нет | Да |
| Accelerated Database Recovery | Базовый | Улучшенный |
| Buffer Pool Extension для Hekaton | Нет | Да |
| Azure Synapse Link | Нет | Да |
| Managed Instance Link | Нет | Да |
| Mainstream Support | До 2025 | До 2028 |
| Extended Support | До 2030 | До 2033 |
Совместимость с приложениями
Тут такое дело: при обновлении все волнуются, не сломается ли что-то. По факту SQL Server 2022 обратно совместим с 2019. Базы данных на уровне совместимости 150 (2019) работают в 2022 без изменений.
Но есть нюансы:
- 1С:Предприятие работает с SQL Server 2022. Официально поддерживается начиная с платформы 8.3.22
- Кастомные приложения если используют deprecated функции (например, Database Mirroring), могут потребовать доработки
- Сторонние инструменты мониторинга обновите до версий с поддержкой 2022, иначе метрики могут собираться некорректно
Кстати, мой коллега Дмитрий из бухгалтерской компании в Воронеже (сервер HPE ProLiant DL360 Gen10, 64 ГБ RAM) обновил SQL Server с 2019 на 2022 под базу 1С. Сначала протестировал на стенде неделю. Потом обновил прод в субботу утром. Всё прошло без проблем. Понедельник начался штатно, бухгалтеры даже не заметили обновления.
Standard vs Enterprise в 2022
Если честно, при выборе между Standard и Enterprise в 2022 принцип тот же, что и в 2019:
- Standard хватит большинству (до 24 ядер, до 128 ГБ RAM для Buffer Pool, Basic AG)
- Enterprise нужна для полноценных AG, In-Memory OLTP без ограничений, compression, partitioning
Грубо говоря, если ваша база меньше 500 ГБ и вам не нужны полноценные AG, Standard закроет все потребности. Enterprise нужна, когда вы упираетесь в ограничения Standard по памяти, ядрам или функциям высокой доступности.
Миграция: пошаговый план
На самом деле, обновление SQL Server это не кнопка «обновить». Вот проверенный план:
- Установите SQL Server 2022 на тестовый сервер
- Восстановите бэкап продакшн-базы на тестовом сервере
- Включите Query Store на тестовом сервере
- Прогоните все критичные сценарии (отчёты, бизнес-процессы)
- Сравните планы выполнения и производительность
- Если всё ок, поднимите Compatibility Level до 160 на тестовом
- Повторите тесты
- Обновите прод в окно обслуживания (выходные или ночь)
- Мониторьте первую неделю после обновления
А ещё, всегда имейте план отката. Полный бэкап перед обновлением, проверенный путь восстановления. Если что-то пойдёт не так, вы должны уметь откатиться за 30 минут, а не за 3 часа.
Accelerated Database Recovery (улучшенный)
Кстати, ADR был в SQL Server 2019, но в 2022 его значительно улучшили. ADR решает проблему длительного отката транзакций.
Вот в чём прикол: представьте, что кто-то запустил DELETE без WHERE и удалил 10 миллионов строк. Вы отменяете транзакцию (ROLLBACK), и сервер начинает откатывать. Без ADR это может занять столько же времени, сколько заняло удаление (часы). С ADR откат происходит за секунды, потому что SQL Server хранит версии строк и просто переключает указатели.
В 2022 ADR работает быстрее и потребляет меньше места на диске для хранения версий. Если честно, для баз с длительными транзакциями это одна из самых полезных функций.
Azure-интеграция: зачем это нужно
SQL Server 2022 позиционируется как «Azure-enabled». Но что это значит на практике?
- Azure Synapse Link. Автоматическая репликация данных из SQL Server в Azure Synapse для аналитики. Данные остаются на локальном сервере, но аналитические запросы идут в облако. Грубо говоря, OLTP остаётся у вас, OLAP уходит в Azure
- Managed Instance Link. Подключение локального SQL Server к Azure SQL Managed Instance. Гибридный сценарий: данные в облаке и на земле одновременно
- Azure Active Directory Authentication. Аутентификация через Azure AD. Если компания уже использует Azure AD, пользователи подключаются к SQL Server через свои облачные учётки
Тут такое дело: если у вас чисто локальная инфраструктура без Azure, эти функции вам не нужны. Но если планируете гибридную среду или миграцию в облако, 2022 готов к этому из коробки.
Безопасность: что нового
SQL Server 2022 усилил безопасность:
- Always Encrypted with secure enclaves улучшенная версия. Данные шифруются на клиенте, сервер работает с зашифрованными данными. Теперь поддерживаются операции сравнения и LIKE для зашифрованных колонок
- Ledger (уже упоминали) криптографическая верификация данных
- Microsoft Purview интеграция классификация и маркировка данных
Знаете что? Для организаций, работающих с персональными данными (а это почти все), Ledger и Always Encrypted могут стать аргументами для перехода на 2022. Регуляторы всё строже относятся к защите данных, и встроенные инструменты шифрования и аудита упрощают compliance.
Итого: обновляться или нет
По факту, SQL Server 2022 это не революция, а эволюция. Если у вас 2019 и всё работает нормально, обновление не срочное. Но если вы страдаете от parameter sniffing, хотите S3-бэкапы, планируете Azure-интеграцию или просто хотите длинный цикл поддержки (до 2033), 2022 стоит того. Ну а если вы на 2016 или 2017, обновляться нужно однозначно: mainstream support для них уже закончился.
Поддержка ОС: какая Windows нужна
Кстати, не все версии Windows Server поддерживаются обоими SQL Server.
| ОС | SQL Server 2019 | SQL Server 2022 |
|---|---|---|
| Windows Server 2016 | Да | Нет |
| Windows Server 2019 | Да | Да |
| Windows Server 2022 | Да | Да |
| Windows Server 2025 | Нет | Да |
| Linux (RHEL 8/9, Ubuntu 20+) | Да | Да |
Вот в чём прикол: если вы на Windows Server 2016, придётся обновить и ОС, и SQL Server одновременно. А это двойная работа и двойной риск. Планируйте заранее. На самом деле, многие используют миграцию SQL Server как повод обновить и серверную ОС. Лицензии Windows Server для хостинга SQL Server доступны в keytrust24.store.
SQL Server 2022 на Linux
А ещё SQL Server 2022 улучшил поддержку Linux. Если честно, SQL Server на Linux стал зрелым продуктом. Многие компании переносят SQL Server с Windows на Linux ради экономии на лицензиях Windows Server. Вот что работает на Linux в 2022:
- Always On AG (полноценно)
- Replication
- Full-Text Search
- Machine Learning Services (Python, R)
- In-Memory OLTP
Чего нет на Linux: SQL Server Agent (используйте cron), SSRS, SSAS, SSIS. Для ETL и отчётности по-прежнему нужен Windows. Но для чистого OLTP-сервера Linux вполне подходит. Грубо говоря, если ваше приложение просто читает и пишет данные через T-SQL, SQL Server на Linux работает идентично Windows-версии.



