За последние 25 лет Microsoft SQL Server значительно эволюционировал, внедряя мощные инструменты и функциональные возможности, одновременно отказываясь от других. В рамках этой эволюции многие возможности были помечены как устаревшие — они по-прежнему работают в текущих версиях, но планируются к удалению в будущих выпусках. Понимание этих устаревших возможностей имеет решающее значение для администраторов баз данных и разработчиков, чтобы обеспечить долгосрочную совместимость и избежать потенциальных сбоев в своих системах.
Объявление возможности устаревшей служит сигналом от Microsoft о необходимости перехода от устаревших или менее эффективных технологий к современным альтернативам. От изменений синтаксиса до целых компонентов — в каждой версии SQL Server появлялись возможности, которые выходили из употребления по мере адаптации платформы к новым отраслевым стандартам и потребностям пользователей. Этот непрерывный процесс помогает поддерживать надёжную, безопасную и высокопроизводительную среду баз данных, но требует проактивного планирования, чтобы избежать зависимости от инструментов, которые вскоре станут неактуальными.
В этой статье мы рассмотрим подробную хронологию устаревших возможностей в различных версиях SQL Server, начиная с SQL Server 2000 и заканчивая последними выпусками. Изучив эти изменения, вы сможете лучше подготовиться к обновлениям, реорганизовать устаревший код и принять рекомендуемые практики, чтобы сохранить вашу инфраструктуру баз данных готовой к будущему. Давайте углубимся в ключевые возможности, которые были исключены за эти годы, и разберёмся с их заменами.
Устаревшие возможности SQL Server за 25 лет
За последние 25 лет Microsoft SQL Server пометил множество возможностей как устаревшие. Устаревшие возможности по-прежнему работают, но их планируется удалить в будущих выпусках. Вот краткое изложение основных устаревших возможностей в разных версиях:
SQL Server 2000 (8.0) – SQL Server 2005 (9.0)
- Старый синтаксис: Использование не-ANSI синтаксиса соединений (*=, =*) было объявлено устаревшим, рекомендовано использовать вместо него стандартный синтаксис JOIN.
- Системные таблицы: Устаревшие таблицы, такие как syslogins и sysdatabases, были заменены представлениями каталога, такими как sys.server_principals и sys.databases.
SQL Server 2008 (10.0) и 2008 R2 (10.5)
- Зеркалирование баз данных (Database Mirroring): Объявлено устаревшим в пользу групп доступности Always On (Always On Availability Groups) для лучшей высокой доступности и аварийного восстановления.
- sp_dboption: Заменён на ALTER DATABASE для управления параметрами базы данных.
- Синтаксис RAISERROR: Устаревший старый формат RAISERROR, рекомендован новый синтаксис с параметрами уровня серьёзности и состояния.
- SQL Server Notification Services - больше не поддерживается.
SQL Server 2012 (11.0)
- SQL-DMO (Distributed Management Objects): Объявлен устаревшим и заменён на SQL Server Management Objects (SMO) для программного управления SQL Server.
- WITH APPEND в триггерах: Разработчикам рекомендовано пересоздавать триггеры вместо их изменения с помощью устаревшего предложения WITH APPEND.
SQL Server 2014 (12.0)
- Подсказка FastFirstRow: Объявлена устаревшей в пользу OPTION (FAST n) для более гибкого управления запросами.
- Удалённые серверы (Remote Servers): Объявлены устаревшими, рекомендовано использовать связанные серверы (Linked Servers) для удалённого доступа к данным.
SQL Server 2016 (13.0)
- sp_setapprole и sp_changeobjectowner: Заменены на более надёжные альтернативы, такие как ALTER APPLICATION ROLE и ALTER SCHEMA.
- SET FMTONLY: Объявлен устаревшим, рекомендованы новые методы обнаружения метаданных, такие как sys.dm_exec_describe_first_result_set.
SQL Server 2017 (14.0)
- Stretch Database: Объявлен устаревшим в пользу Azure SQL Database Hyperscale из-за сложности настройки и управления.
SQL Server 2019 (15.0)
- Distributed Replay: Объявлен устаревшим, для масштабируемого тестирования производительности рекомендован Azure Load Testing.
- Machine Learning Server: Помечен как устаревший, вместо него рекомендован Azure Machine Learning.
SQL Server 2022 (16.0)
- Кластеры больших данных SQL Server (SQL Server Big Data Clusters): Прекращена поддержка из-за низкого уровня внедрения, заменены на Azure Synapse Analytics для рабочих нагрузок больших данных.
- Группы масштабирования PolyBase (PolyBase Scale-Out Groups): Постепенно исключены из-за улучшенной производительности PolyBase на одном узле.
SQL Server 2025 (17.0)
Эти возможности всё ещё доступны, но помечены для удаления в будущем. Избегайте их использования в новых разработках.
- Горячее добавление процессоров (Hot add CPU)
- Параметр конфигурации «Облегчённое пулирование» (Lightweight pooling / fiber mode)
Прекращённые / Удалённые возможности в SQL Server 2025
- Службы качества данных (Data Quality Services, DQS)
- Службы справочных данных (Master Data Services, MDS)
- Synapse Link
- Политики доступа Purview (политики DevOps и политики владельцев данных)
Отслеживание устаревших возможностей в SQL Server
Используйте счётчик производительности SQLServer:Deprecated Features или выполните этот T-SQL-запрос, чтобы выявить устаревшие возможности в вашем экземпляре:
SELECT object_name, counter_name, instance_name, cntr_value, cntr_type
FROM sys.dm_os_performance_counters
WHERE object_name like '%SQL%Deprecated Features%'
AND cntr_value > 0;
Оставаясь в курсе устаревших возможностей, вы можете обеспечить совместимость, повысить производительность и поддерживать безопасность вашего SQL Server.

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