2.4.26

SQL Server Deprecated Features: 25-летняя хронология и руководство по обеспечению совместимости с будущими версиями

Автор: Steve Stedman, SQL Server Deprecated Features: A 25-Year Timeline and Future-Proofing Guide

За последние 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.




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

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