Cosa sono le estensioni del linguaggio di SQL Server?

Si applica a: SQL Server 2019 (15.x) e versioni successive

Le estensioni del linguaggio sono una funzionalità di SQL Server usata per l'esecuzione di codice esterno. I dati relazionali possono essere usati nel codice esterno tramite il framework di estendibilità. In SQL Server 2019 (15.x) e versioni successive sono supportati i runtime Java, C#, Python e R.

Nota

Per l'esecuzione di Python o R in SQL Server, vedere la documentazione sui servizi di Machine Learning con Python e R. Con SQL Server 2019 (15.x) e versioni successive, è possibile usare un runtime personalizzato di Python e R con le estensioni del linguaggio. Per altre informazioni, vedere Installare un runtime personalizzato Python per SQL Server e Installare un runtime personalizzato R per SQL Server.

Potenzialità delle estensioni del linguaggio

Le estensioni del linguaggio usano il framework di estendibilità per l'esecuzione di codice esterno. L'esecuzione del codice è isolata dai processi del motore di base, ma completamente integrata con l'esecuzione delle query di SQL Server. È possibile eseguire il codice nell'origine dati, eliminando la necessità di eseguire il pull dei dati attraverso la rete.

I linguaggi esterni sono definiti con CREATE EXTERNAL LANGUAGE. La stored procedure di sistema sp_execute_external_script viene usata come interfaccia per l'esecuzione del codice.

Le estensioni del linguaggio offrono diversi vantaggi:

  • Sicurezza dei dati. L'esecuzione di un linguaggio esterno più vicino all'origine dei dati evita spostamenti di dati non sicuri.

  • Velocità. I database sono ottimizzati per le operazioni basate su set.

  • Facilità di distribuzione e integrazione. SQL Server è il punto centrale delle operazioni per molte altre attività di gestione dati e applicazioni. Usando i dati nel database, è possibile assicurarsi che i dati usati dall'estensione del linguaggio siano coerenti e aggiornati.

La funzionalità nativa Common Language Runtime Integration consente di implementare alcune delle funzionalità di SQL Server con i linguaggi .NET. Per una discussione sulle differenze tra il CLR SQL e le estensioni del linguaggio SQL, vedere Confronto tra le estensioni del linguaggio di SQL Server e il CLR SQL.

Per ulteriori informazioni sulla sicurezza con il framework di estensibilità, vedere Architettura di sicurezza per il framework di estensibilità nei servizi di Machine Learning di SQL Server.