Installation de l’extension de langage .NET SQL Server sur Windows
S’applique à : SQL Server 2019 (15.x) et versions ultérieures
Découvrez comment installer le composant Extension de langage .NET pour SQL Server sur Windows. L’extension de langage .NET fait partie des Extensions de langage SQL Server.
Remarque
Cet article concerne l’installation de l’extension de langage .NET pour SQL Server sur Windows. Linux n’est pas pris en charge.
Prérequis
Remarque
Les fonctionnalités des caractéristiques et les options d’installation varient entre les versions de SQL Server. Utilisez la liste déroulante du sélecteur de version pour choisir la version appropriée de SQL Server.
Le programme d’installation de SQL Server est nécessaire si vous souhaitez installer la prise en charge de l’extension de langage .NET.
L’extension de langage .NET prend en charge les runtimes .NET 6 et ultérieurs, et n’est prise en charge que sur Windows.
Une instance du moteur de base de données est nécessaire. Il n’est pas possible d’installer uniquement les fonctionnalités Extension de langage .NET. Cependant, vous pouvez les ajouter de façon incrémentielle à une instance existante.
Pour assurer la continuité d’activité, les extensions de langage prennent en charge les groupes de disponibilité Always On. Vous devez installer les extensions de langage et configurer des packages sur chaque nœud. L’installation de l’extension de langage .NET est également prise en charge sur une instance de cluster de basculement dans SQL Server.
N’installez pas les extensions de langage SQL Server ni l’extension de langage .NET sur un contrôleur de domaine. La partie Extensions de langage de l’installation échoue.
Les extensions de langage et Machine Learning Services sont installés par défaut sur Clusters Big Data SQL Server. Si vous utilisez Clusters Big Data, vous n’avez pas besoin de suivre les étapes décrites dans cet article. Pour plus d’informations, consultez Exécuter des scripts Python et R avec Machine Learning Services sur des clusters Big Data SQL Server 2019.
Important
Une fois l’installation terminée, veillez à suivre les étapes consécutives à la configuration décrites dans cet article. Vous devez notamment autoriser SQL Server à utiliser du code externe et ajouter les comptes nécessaires pour que SQL Server exécute du code C# en votre nom. Les modifications de configuration nécessitent généralement un redémarrage de l’instance ou du service Launchpad.
Runtime .NET
La prise en charge à long terme de .NET 6 est le runtime le plus ancien pris en charge. Vous pouvez télécharger le runtime .NET pour Windows. Linux n’est pas pris en charge.
Si vous souhaitez utiliser la dernière version LTS du runtime .NET, vous devez recompiler l’extension de langage .NET.
Obtenir le média d’installation
L’emplacement de téléchargement pour SQL Server dépend de l’édition :
Éditions SQL Server Entreprise, Standard et Express. Ces éditions sont concédées sous licence pour une utilisation en production. Pour les éditions Entreprise et Standard, contactez votre fournisseur de logiciels afin d’obtenir le support d’installation. Vous trouverez des informations sur l’achat et un annuaire de partenaires de Microsoft sur le site web d’achat de Microsoft.
Exécuter le programme d’installation
Pour des installations locales, vous devez exécuter le programme d’installation en tant qu’administrateur. Si vous installez SQL Server à partir d’un partage distant, vous devez utiliser un compte de domaine qui a les autorisations de lecture et d’exécution sur le partage distant.
Démarrez l’Assistant Installation de SQL Server.
Sous l’onglet Installation, sélectionnez Nouvelle installation autonome de SQL Server ou ajout de fonctionnalités à une installation existante.
Dans la page Sélection de fonctionnalités , sélectionnez les options suivantes :
Services de moteur de base de données : pour utiliser les extensions de langage avec SQL Server, vous devez installer une instance du moteur de base de données. Vous pouvez utiliser l’instance par défaut ou une instance nommée.
Machine Learning Services et extensions de langage : cette option installe le composant Extensions de langage qui prend en charge l’exécution du code C#.
Dans la page Prêt pour l’installation, vérifiez que ces sélections sont incluses, puis choisissez Installer.
- Services Moteur de base de données
- Machine Learning Services et extensions de langage
Notez l’emplacement du dossier sous le chemin
..\Setup Bootstrap\Log
où sont stockés les fichiers de configuration. Une fois l’installation terminée, vous pouvez passer en revue les composants installés dans le fichier de synthèse.Si vous êtes invité à redémarrer l’ordinateur après l’installation, faites-le dès à présent. Lisez bien le message de l’assistant Installation à la fin de l’installation. Pour plus d’informations, consultez View and Read SQL Server Setup Log Files.
Inscrivez l’extension de langage
Effectuez ces étapes pour télécharger et inscrire l’extension de langage .NET, qui est utilisée pour l’exécution du code C#.
Téléchargez le
dotnet-core-CSharp-lang-extension-windows-release.zip
fichier à partir de l’extension de langage .NET pour le référentiel GitHub SQL Server. Téléchargez le fichierdotnet-core-CSharp-lang-extension-windows-release.zip
Windows le plus récent. Si vous préférez utiliser un runtime .NET plus récent, vous devez compilerdotnet-core-CSharp-lang-extension
à partir du code source GitHub.Utilisez SQL Server Management Studio (SSMS) ou Azure Data Studio pour vous connecter à votre instance SQL Serve.NET et exécutez la commande Transact-SQL suivante pour inscrire l’extension de langage R avec CREATE EXTERNAL LANGUAGE.
Modifiez le chemin d’accès dans cette instruction pour refléter l’emplacement du fichier zip de l’extension de langage téléchargé (
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
Redémarrez Launchpad.
Ouvrez le Gestionnaire de configuration SQL Server.
Sous Services SQL Server, cliquez avec le bouton droit sur SSQL Server Launchpad et sélectionnez Redémarrer.
Redémarrez le service.
Une fois l’installation terminée, redémarrez le moteur de base de données avant de passer à l’étape suivante pour activer l’exécution de scripts.
Le redémarrage du service entraîne également le redémarrage automatique du service SQL Server Launchpad associé.
Pour redémarrer le service, vous pouvez cliquer avec le bouton droit sur la commande Redémarrer pour l’instance dans SSMS, dans le panneau Services du panneau de contrôle ou utiliser le Gestionnaire de configuration SQL Server.
Activer l’exécution de scripts
Ouvrez SQL Server Management Studio. Connectez-vous à l’instance sur laquelle vous avez installé les extensions de langage, sélectionnez Nouvelle requête pour ouvrir une fenêtre de requête, puis exécutez la commande suivante :
EXEC sp_configure;
La fonctionnalité est désactivée par défaut (
value
=0
) et doit être explicitement activée par un administrateur avant que vous puissiez exécuter du code C#.Pour activer la fonctionnalité d’exécution de scripts externes, exécutez l’instruction suivante :
EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE WITH OVERRIDE
Si vous avez déjà activé la fonctionnalité pour Machine Learning Services, ne procédez pas à une deuxième configuration les extensions de langage. La plateforme d’extensibilité sous-jacente prend en charge les deux.
Inscrire le langage externe
Pour chaque base de données dans laquelle vous souhaitez utiliser des extensions de langage, vous devez inscrire le langage externe avec CREATE EXTERNAL LANGUAGE.
L’exemple suivant ajoute un langage externe appelé dotnet
à une base de données sur SQL Server sur Windows.
CREATE EXTERNAL LANGUAGE [dotnet]
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'dotnetextension.dll');
GO
Pour plus d’informations, consultez CRÉER UN LANGAGE EXTERNE.
Vérifier l’installation
Vérifiez l’état d’installation de l’instance dans les journaux d’installation.
Effectuez les étapes suivantes pour vérifier que tous les composants utilisés pour lancer un script externe sont en cours d’exécution.
Dans SQL Server Management Studio ou Azure Data Studio, ouvrez une nouvelle fenêtre de requête et exécutez l’instruction suivante :
EXEC sp_configure 'external scripts enabled';
La valeur
run_value
est désormais de1
.Ouvrez le panneau Services ou le Gestionnaire de configuration SQL Server, puis vérifiez que le service SQL Server Launchpad est en cours d’exécution. Vous devez disposer d’un service pour chaque instance du moteur de base de données sur laquelle les extensions de langage sont installées. Pour plus d’informations sur le service, consultez Architecture d’extensibilité dans SQL Server Machine Learning Services.
Configuration supplémentaire
Si l’étape de vérification réussit, vous pouvez exécuter du code C# à partir de SQL Server Management Studio, d’Azure Data Studio, de Visual Studio Code ou de tout autre client capable d’envoyer des instructions T-SQL au serveur.
Si une erreur s’est produite lors de l’exécution de la commande, passez en revue les étapes de configuration supplémentaires de cette section. Vous devrez peut-être apporter des configurations supplémentaires spécifiques au service ou à la base de données.
Au niveau de l’instance, ces configurations supplémentaires peuvent inclure :
- Configurer le pare-feu pour SQL Server Machine Learning Services
- Activer ou désactiver un protocole réseau de serveur
- Configurer l’accès à distance (option de configuration du serveur)
- Créer un nom de connexion pour SQLRUserGroup
Vous aurez peut-être besoin d’effectuer les mises à jour de configuration suivantes sur la base de données :
- Octroi aux utilisateurs de bases de données de l’autorisation d’exécuter des scripts Python et R avec SQL Server Machine Learning Services
- Accorder aux utilisateurs l’autorisation d’exécuter un langage spécifique
Notes
Plusieurs éléments déterminent si une configuration supplémentaire est nécessaire : votre schéma de sécurité, l’emplacement d’installation de SQL Server et la façon dont les utilisateurs sont supposés se connecter à la base de données et exécuter des scripts externes.
Optimisations suggérées
Maintenant que tout fonctionne, il peut être intéressant d’optimiser le serveur pour prendre en charge l’extension de langage .NET.
Optimisation du serveur pour l’extension de langage .NET
Les paramètres par défaut pour la configuration de SQL Server sont destinés à optimiser l’équilibre du serveur pour un éventail de services pris en charge par le moteur de base de données, ce qui peut inclure les processus d’extraction, transformation et chargement (ETL, extract, transform, load), la création de rapports, l’audit et les applications qui utilisent les données SQL Server. Cela explique pourquoi, dans les paramètres par défaut, les ressources sont parfois restreintes ou limitées pour les extensions de langage, en particulier dans les opérations utilisant beaucoup de mémoire.
Pour vous assurer que les travaux d’extensions de langage sont classés par ordre de priorité et correctement ressourcées, nous vous recommandons d’utiliser la fonctionnalité Resource Governor de SQL Server pour configurer un pool de ressources externes. Vous pouvez aussi modifier la quantité de mémoire allouée au moteur de base de données ou augmenter le nombre de comptes s’exécutant sous le service SQL Server Launchpad.
Pour configurer un pool de ressources afin de gérer des ressources externes, consultez CREATE EXTERNAL RESOURCE POOL (Transact-SQL).
Pour modifier la quantité de mémoire réservée à la base de données, consultez Options de configuration de la mémoire du serveur.
Si vous utilisez l’édition Standard et que vous n’avez pas le composant Resource Governor, vous pouvez utiliser les vues de gestion dynamique (DMV), les événements étendus ainsi que la supervision des événements Windows pour mieux gérer les ressources serveur.
Étape suivante
Les développeurs C# peuvent démarrer avec quelques exemples simples et découvrir les principes de base du fonctionnement de C# avec SQL Server. Pour accéder à l’étape suivante, cliquez sur le lien suivant :