O que são Extensões de Linguagem do SQL Server?

Aplica-se a: SQL Server 2019 (15.x) e versões posteriores

As Extensões de Linguagem é um recurso do SQL Server usado para executar código externo. Os dados relacionais podem ser usados no código externo usando a estrutura de extensibilidade. O SQL Server 2019 (15.x) e versões posteriores oferecem suporte aos runtimes do Java, C#, Python e R.

Observação

Para executar o Python ou o R no SQL Server, consulte a documentação dos Serviços de Machine Learning com Python e R. Com o SQL Server 2019 (15.x) e versões posteriores, você pode usar um runtime personalizado do Python e do R com as extensões de linguagem. Para obter mais informações, consulte Instalar um runtime personalizado do Python para SQL Server e Instalar um runtime personalizado do R para SQL Server.

O que você pode fazer com as Extensões de Linguagem

As Extensões de Linguagem usam a estrutura de extensibilidade para executar código externo. A execução de código é isolada dos principais processos de mecanismo, mas totalmente integrada à execução de consulta do SQL Server. Você pode executar o código na fonte dos dados, eliminando a necessidade de efetuar pull dos dados na rede.

As linguagens externas são definidas com CREATE EXTERNAL LANGUAGE. O procedimento armazenado do sistema sp_execute_external_script é usado como a interface para executar o código.

As Extensões de Linguagem oferecem várias vantagens:

  • Segurança de dados. Aproximar a execução de linguagem externa da fonte de dados evita uma movimentação de dados não segura.

  • Velocidade. Os bancos de dados são otimizados para operações baseadas em conjunto.

  • Facilidade de implantação e integração. SQL Server é o ponto central de operações para muitas outras tarefas e aplicativos de gerenciamento de dados. Usando os dados do banco de dados, você garante que os dados usados pela extensão de linguagem sejam consistentes e atualizados.

A Integração ao Common Language Runtime nativa permite implementar algumas das funcionalidades do SQL Server com linguagens .NET. Para ver uma discussão sobre as diferenças entre SQL CLR e extensões de linguagem do SQL, confira Comparação das Extensões de Linguagem do SQL Server com SQL CLR.