¿Qué son las extensiones de lenguaje de SQL Server?

Se aplica a: SQL Server 2019 (15.x) y versiones posteriores.

Las extensiones de lenguaje son una característica de SQL Server que se usa para ejecutar código externo. Los datos relacionales se pueden usar en el código externo mediante el uso del marco de extensibilidad. En SQL Server 2019 (15.x) y versiones posteriores, se admiten entornos de ejecución de Java, C#, Python y R.

Nota:

Para ejecutar Python o R en SQL Server, consulte la documentación de Machine Learning Services con Python y R. Con SQL Server 2019 (15.x) y versiones posteriores, puede usar un tiempo de ejecución personalizado de Python y R con extensiones de lenguaje. Para obtener más información, consulte Instalación de un entorno de ejecución personalizado de Python para SQL Server e Instalación de un entorno de ejecución personalizado de R para SQL Server.

Qué puede hacer con las extensiones de lenguaje

Las extensiones de lenguaje usan el marco de extensibilidad para ejecutar código externo. La ejecución del código está aislada de los procesos principales del motor, pero está totalmente integrada con la ejecución de consultas de SQL Server. Puede ejecutar código en el origen de los datos, lo que elimina la necesidad de extraer datos a través de la red.

Los lenguajes externos se definen con CREATE EXTERNAL LANGUAGE. El procedimiento almacenado del sistema sp_execute_external_script se usa como interfaz para ejecutar el código.

Las extensiones de lenguaje proporcionan varias ventajas:

  • Seguridad de datos. La ejecución del lenguaje externo más cerca del origen de datos evita el movimiento de datos no seguro.

  • Velocidad. Las bases de datos están optimizadas para operaciones basadas en conjuntos.

  • Facilidad de implementación e integración. SQL Server es el punto central de operaciones para muchas otras tareas y aplicaciones de administración de datos. Si usa los datos que residen en la base de datos, tendrá la garantía de que los datos usados por la extensión de lenguaje son coherentes y están actualizados.

Laintegración del idioma común en tiempo de ejecución permite implementar algunas de las funcionalidades de SQL Server con lenguajes .NET. Para obtener una explicación de las diferencias entre el CLR de SQL y las Extensiones de lenguaje de SQL, vea Comparación entre las Extensiones de lenguaje de SQL Server y el CLR de SQL.