Présentation des extensions de langage SQL Server

S’applique à : SQL Server 2019 (15.x) et versions ultérieures

Les extensions de langage sont une fonctionnalité de SQL Server utilisée pour l’exécution de code externe. Les données relationnelles peuvent être utilisées dans le code externe à l’aide du framework d’extensibilité. Dans SQL Server 2019 (15.x) et versions ultérieures, les runtimes Java, C#, Python et R sont pris en charge.

Remarque

Pour exécuter Python ou R dans SQL Server, consultez la documentation Machine Learning Services avec Python et R. SQL Server 2019 (15.x) et versions ultérieures vous permettent d’utiliser un runtime Python et R personnalisé avec des extensions de langage. Pour plus d’informations, consultez Installer un runtime personnalisé Python pour SQL Server et installer un runtime personnalisé R pour SQL Server.

Ce que vous pouvez faire avec les extensions de langage

Les extensions de langage utilisent le framework d’extensibilité pour exécuter du code externe. L’exécution du code est isolée des processus du moteur de base, mais entièrement intégrée à l’exécution des requêtes SQL Server. Vous pouvez exécuter du code à la source des données, ce qui évite d’avoir à extraire des données sur le réseau.

Les langages externes sont définis avec CREATE EXTERNAL LANGUAGE. La procédure stockée système sp_execute_external_script sert d’interface pour l’exécution du code.

Les extensions de langage offrent plusieurs avantages :

  • Sécurité des données. Le fait de rapprocher l’exécution du langage externe de la source de données évite les déplacements de données non sécurisés.

  • Vitesse. Les bases de données sont optimisées pour les opérations basées sur un jeu.

  • Facilité de déploiement et d’intégration. SQL Server centralise les opérations pour de nombreuses autres applications et tâches de gestion des données. En utilisant des données dans la base de données, vous avez la certitude que les données utilisées par l’extension de langage sont cohérentes et à jour.

Le common language runtime Integration natif vous permet de mettre en œuvre certaines des fonctionnalités de SQL Server avec les langages .NET. Pour une explication des différences entre SQL CLR et les extensions de langage SQL, consultez Comparer les extensions de langage SQL Server et SQL CLR.

Pour plus d’informations sur la sécurité avec le cadre d’extensibilité, consultez Architecture de la sécurité du cadre d’extensibilité dans SQL Server Machine Learning Services.