SQL Server 言語拡張とは?

適用対象: はいSQL Server 2019 (15.x)

言語拡張は、外部コードの実行に使用される SQL Server の機能です。 リレーショナル データは、機能拡張フレームワークを使用して外部コードで使用できます。 SQL Server 2019 では、Java、C#、Python、および R ランタイムがサポートされています。

注意

SQL Server での Python または R の実行については、Machine Learning Services のドキュメントを参照してください。 SQL Server 2019 以降では、言語拡張で Python および R のカスタム ランタイムを使用できます。 詳細については、Python カスタム ランタイムR カスタム ランタイムのインストールに関する記事を参照してください。

言語拡張でできること

言語拡張では、外部コードを実行するための拡張機能フレームワークが使用されます。 コードの実行はコア エンジン プロセスから分離されていますが、SQL Server のクエリ実行と完全に統合されています。 データのソースでコードを実行できるため、ネットワーク経由でデータをプルする必要はありません。

外部言語は CREATE EXTERNAL LANGUAGE で定義されます。 システム ストアド プロシージャ sp_execute_external_script は、コードを実行するためのインターフェイスとして使用されます。

言語拡張には、次のような利点があります。

  • データのセキュリティ。 外部言語の実行をデータのソースに近づけることにより、セキュリティで保護されていないデータ移動を回避できます。
  • 速さ。 データベースは、セットベースの操作用に最適化されています。
  • 展開と統合の容易さ。 SQL Server は、他の多くのデータ管理タスクおよびアプリケーションの操作の中心となるポイントです。 データベース内のデータを使用することで、言語拡張で使用されるデータの一貫性と最新性を確保できます。

ネイティブの SQL 共通言語ランタイム (CLR) を使用すると、.NET 言語を使用して SQL Server 機能の一部を実装できます。 SQL CLR と SQL 言語拡張機能の違いについては、「SQL Server 言語拡張機能と CLR を比較する」を参照してください。

次のステップ