Что такое расширения языка для SQL Server?

Область применения: SQL Server 2019 (15.x) и более поздних версий

Расширения языка — это функция SQL Server, используемая для выполнения внешнего кода. Реляционные данные могут использоваться во внешнем коде с помощью платформы расширяемости. В SQL Server 2019 (15.x) и более поздних версиях поддерживаются среды выполнения Java, C#, Python и R.

Примечание.

Сведения о выполнении Python или R в SQL Server см. в документации по службам Машинное обучение с помощью Python и R. В SQL Server 2019 (15.x) и более поздних версиях можно использовать настраиваемую среду выполнения Python и R с расширениями языка. Дополнительные сведения см. в статье "Установка пользовательской среды выполнения Python для SQL Server " и установка настраиваемой среды выполнения R для SQL Server.

Возможности расширений языка

Расширения языка используют платформу расширяемости для исполнения внешнего кода. Выполнение кода изолировано от процессов ядра, но полностью интегрировано с выполнением запросов SQL Server. Вы можете выполнять код в источнике данных, чтобы не передавать данные по сети.

Внешние языки определяются с помощью инструкции CREATE EXTERNAL LANGUAGE. Системная хранимая процедура sp_execute_external_script используется в качестве интерфейса для исполнения кода.

Использование расширений языка имеет несколько преимуществ.

  • Защита данных. Выполнение кода внешнего языка ближе к источнику данных позволяет избежать небезопасного перемещения данных.

  • Скорость. Базы данных оптимизированы для операций на основе наборов.

  • Простота развертывания и интеграции. SQL Server — это центральная точка операций для многих других задач и приложений по управлению данными. Используя данные в базе данных, вы гарантируете, что языковое расширение использует согласованные и актуальные данные.

Интеграция среды cl language Runtime позволяет реализовать некоторые функции SQL Server с языками .NET. Обсуждение различий между SQL CLR и расширениями языка SQL см. в разделе Сравнение расширений языка SQL Server и SQL CLR.