Instalación de la extensión de lenguaje .NET de SQL Server en Windows
Se aplica a: SQL Server 2019 (15.x) y versiones posteriores
Aprenda a instalar el componente Extensión de lenguaje .NET (utilizado por C#) para SQL Server en Windows. La extensión de lenguaje .NET forma parte de las Extensiones de lenguaje de SQL Server.
Nota:
Este artículo trata la instalación de la extensión de lenguaje .NET para SQL Server en Windows. Linux no se admite.
Requisitos previos
Nota:
Las funcionalidades de características y las opciones de instalación varían entre las versiones de SQL Server. Use la lista desplegable del selector de versiones para elegir la versión adecuada de SQL Server.
Se necesita el programa de instalación de SQL Server si quiere instalar la compatibilidad con la extensión de lenguaje .NET.
La extensión de lenguaje .NET admite entornos de ejecución de .NET 6 y versiones posteriores, y solo se admite en Windows.
Se necesita una instancia del motor de base de datos. No se pueden instalar únicamente las características de la extensión de lenguaje .NET, aunque se pueden agregar de manera incremental a una instancia existente.
De cara a la continuidad empresarial, se admiten Grupos de disponibilidad Always On en las extensiones de lenguaje. Debe instalar las extensiones de lenguaje y configurar los paquetes en cada nodo. La instalación de la extensión de lenguaje .NET se admite en una instancia de clúster de conmutación por error en SQL Server.
No instale las extensiones de lenguaje de SQL Server ni la extensión de lenguaje .NET en un controlador de dominio. Se producirá un error en la parte de las extensiones de lenguaje del programa de instalación.
Las extensiones de lenguaje y Machine Learning Services se instalan de forma predeterminada en Clústeres de macrodatos de SQL Server. Si usa Clústeres de macrodatos, no es necesario que siga los pasos de este artículo. Para más información, consulta Ejecución de scripts de Python y R con Machine Learning Services en Clústeres de macrodatos de SQL Server 2019.
Importante
Una vez finalizada la instalación, asegúrese de completar los pasos posteriores a la configuración que se describen en este artículo. Estos pasos incluyen cómo habilitar SQL Server para usar código externo y cómo agregar las cuentas necesarias para que SQL Server ejecute código .NET en su nombre. Normalmente, si se realizan cambios en la configuración, es necesario reiniciar la instancia o el servicio Launchpad.
Entorno de ejecución de .NET
La compatibilidad con .NET 6 a largo plazo (LTS) es el entorno de ejecución admitido más antiguo. Puede descargar el entorno de ejecución .NET para Windows. Linux no se admite.
Si desea usar la versión más reciente de LTS del entorno de ejecución de .NET, debe volver a compilar la extensión de lenguaje .NET.
Obtener los medios de instalación
La ubicación de descarga de SQL Server depende de la edición:
Ediciones SQL Server Enterprise, Standard y Express. Estas ediciones tienen licencia para su uso en producción. En el caso de las ediciones Enterprise y Standard, póngase en contacto con su proveedor de software para obtener los soportes de instalación. Encontrará información sobre la adquisición y un directorio de asociados de Microsoft en el sitio web de adquisición de Microsoft.
Ejecución del programa de instalación
En instalaciones locales, debe ejecutar el programa de instalación como administrador. Si instala SQL Server desde un recurso compartido remoto, deberá usar una cuenta de dominio que tenga permisos de lectura y ejecución para dicho recurso.
Inicie el asistente para la instalación de SQL Server.
En la pestaña Instalación, seleccione Nueva instalación independiente de SQL Server o agregar características a una instalación existente.
En la página Selección de características , seleccione estas opciones:
Servicios de motor de base de datos: para usar las extensiones de lenguaje con SQL Server, debe instalar una instancia del motor de base de datos. Puede usar una instancia predeterminada o una con nombre.
Machine Learning Services y extensiones de lenguaje: esta opción instala el componente de extensiones de lenguaje que admite la ejecución de código C#.
En la página Listo para instalar, confirme que estas selecciones se han realizado y haga clic en Instalar.
- Servicios de Motor de base de datos
- Machine Learning Services y extensiones de lenguaje
Tome nota de la ubicación de la carpeta en la ruta de acceso
..\Setup Bootstrap\Log
donde se almacenan los archivos de configuración. Una vez que se haya completado la instalación, podrá revisar los componentes instalados en el archivo de resumen.Cuando finalice la instalación, si el programa indica que se reinicie el equipo, hágalo. Es importante leer el mensaje del Asistente para instalación tras finalizar el programa de instalación. Para obtener más información, vea View and Read SQL Server Setup Log Files.
Registro de la extensión de lenguaje
Siga estos pasos para descargar y registrar la extensión del lenguaje .NET, que se usa para la ejecución de código C#.
Descargue el archivo
dotnet-core-CSharp-lang-extension-windows-release.zip
de la extensión de lenguaje .NET para el repositorio de GitHub de SQL Server. Descargue el archivodotnet-core-CSharp-lang-extension-windows-release.zip
más reciente de Windows. Si prefiere usar un entorno de ejecución de .NET más reciente, debe compilardotnet-core-CSharp-lang-extension
desde código fuente de GitHub.Use SQL Server Management Studio (SSMS) o Azure Data Studio para conectarse a la instancia de SQL Server y ejecute el comando de Transact-SQL (T-SQL) siguiente para registrar la extensión del lenguaje .NET con CREATE EXTERNAL LANGUAGE.
Modifique la ruta de acceso de esta instrucción para reflejar la ubicación del archivo ZIP de la extensión de lenguaje descargado (
dotnet-core-CSharp-lang-extension-windows-release.zip
).
CREATE EXTERNAL LANGUAGE [dotnet] FROM (CONTENT = N'C:\path\to\dotnet-core-CSharp-lang-extension-windows-release.zip', FILE_NAME = 'dotnetextension.dll'); GO
Reinicie Launchpad.
En Servicios de SQL Server, haga clic con el botón derecho en Launchpad de SQL Server y elija Reiniciar.
Reinicie el servicio.
Cuando se haya completado la instalación, reinicie el motor de base de datos antes de continuar con el paso siguiente para habilitar la ejecución de scripts.
Al reiniciar el servicio, también se reiniciará automáticamente el servicio SQL Server Launchpad relacionado.
Para reiniciar el servicio, puede hacer clic con el botón derecho en el comando Reiniciar de la instancia en SSMS, con el panel Servicios del panel de control o emplear el Administrador de configuración de SQL Server.
Habilitación de la ejecución de scripts
Abra SQL Server Management Studio. Conéctese a la instancia en la que ha instalado las extensiones de lenguaje, haga clic en Nueva consulta para abrir una ventana de consulta y ejecute el siguiente comando:
EXEC sp_configure;
La característica está desactivada (
value
es0
) de manera predeterminada, y un administrador debe habilitarla expresamente para poder ejecutar código C#.Para habilitar la característica de scripting externo, ejecute la siguiente instrucción:
EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE WITH OVERRIDE
Si ya ha habilitado la característica para Machine Learning Services, no ejecute RECONFIGURE una segunda vez para las extensiones de lenguaje. La plataforma de extensibilidad subyacente admite ambos.
Registrar lenguaje externo
Por cada base de datos en la que quiera usar Extensiones de lenguaje, debe registrar el lenguaje externo con CREATE EXTERNAL LANGUAGE.
En el ejemplo siguiente se agrega un lenguaje externo denominada dotnet
a una base de datos de SQL Server en Windows.
CREATE EXTERNAL LANGUAGE [dotnet]
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'dotnetextension.dll');
GO
Para obtener más información, vea CREATE EXTERNAL LANGUAGE.
Comprobar la instalación
Compruebe el estado de instalación de la instancia en los registros de instalación.
Haga lo siguiente para comprobar que se están ejecutando todos los componentes que se usan para iniciar el script externo.
En SQL Server Management Studio o Azure Data Studio, abra una nueva ventana de consulta y ejecute la siguiente instrucción:
EXEC sp_configure 'external scripts enabled';
run_value
ahora está establecido en1
.Abra el panel de Servicios o el Administrador de configuración de SQL Server y compruebe que el servicio SQL Server Launchpad se está ejecutando. Debe tener un servicio por cada instancia del motor de base de datos que tenga instaladas extensiones de lenguaje. Para obtener más información sobre el servicio, consulte Arquitectura de extensibilidad en extensiones de lenguaje de SQL Server.
Configuración adicional
Si el paso de comprobación se ejecuta correctamente, puede ejecutar código C# en SQL Server Management Studio, Azure Data Studio, Visual Studio Code o cualquier otro cliente que pueda enviar instrucciones T-SQL al servidor.
Si se produjo un error al ejecutar el comando, revise los pasos de configuración adicional de esta sección. Es posible que tenga que crear otras configuraciones adicionales adecuadas para el servicio o la base de datos.
En el nivel de instancia, la configuración adicional podría incluir:
- Configuración de firewall para SQL Server Machine Learning Services
- Habilitación o deshabilitación de un protocolo de red de servidor
- Configurar acceso remoto (opción de configuración de servidor)
- Creación de un inicio de sesión para SQLRUserGroup
En la base de datos, puede que necesite las siguientes actualizaciones de configuración:
- Concesión de permisos de usuario de base de datos para ejecutar scripts de Python y R con SQL Server Machine Learning Services
- Concesión de permiso a los usuarios para ejecutar un lenguaje específico
Nota:
El hecho de que se requiera una configuración adicional depende del esquema de seguridad, del lugar en el que se haya instalado SQL Server y de cómo se espera que los usuarios se conecten a la base de datos y ejecuten scripts externos.
Optimizaciones sugeridas
Ahora que todo funciona, puede que también le interese optimizar el servidor para admitir la extensión de lenguaje .NET.
Optimización del servidor para la extensión de lenguaje .NET
La configuración predeterminada del programa de instalación de SQL Server está diseñada para optimizar el equilibrio del servidor para diversos servicios que el motor de base de datos admite, entre otros, procesos de extracción, transformación y carga de datos (ETL), creación de informes, auditoría y aplicaciones que usan datos de SQL Server. Por lo tanto, en la configuración predeterminada podría ver que los recursos para extensiones de lenguaje a veces están restringidos, especialmente en operaciones que usan mucha memoria.
Para asegurarse de que se asignan a los trabajos de extensiones de lenguaje la prioridad y los recursos correctos, se recomienda usar Resource Governor de SQL Server para configurar un grupo de recursos externos. Puede que también le interese cambiar la cantidad de memoria asignada al motor de base de datos o aumentar el número de cuentas que se ejecutan en el servicio SQL Server Launchpad.
Para configurar un grupo de recursos para la administración de recursos externos, vea Creación de un grupo de recursos externos (Transact-SQL).
Para cambiar la cantidad de memoria reservada para la base de datos, vea Opciones de configuración de memoria del servidor.
Si usa la edición Standard Edition y no dispone de Resource Governor, puede usar vistas de administración dinámica (DMV) y eventos extendidos, así como la supervisión de eventos de Windows, como ayuda para administrar los recursos de servidor.
Paso siguiente
Los desarrolladores de C# pueden empezar con algunos ejemplos sencillos y conocer los aspectos básicos del funcionamiento de C# con SQL Server. Para conocer el siguiente paso, vea el siguiente vínculo: