Condividi tramite


Vantaggi dell'utilizzo di codice gestito per creare oggetti di database

Per creare oggetti di database e recuperare e aggiornare dati per i database di SQL Server, è possibile utilizzare i linguaggi .NET Framework oltre al linguaggio di programmazione Transact-SQL. Nei progetti Visual Basic o Visual C# è possibile creare stored procedure, aggregati, trigger, funzioni definite dall'utente e tipi definiti dall'utente. Gli oggetti di database scritti in codice gestito vengono denominati oggetti Common Language Runtime di SQL Server o oggetti CLR SQL.

Nota

Per impostazione predefinita, la funzionalità di integrazione di Common Language Runtime (CLR) è disattivata in SQL Server. Per utilizzare gli elementi di progetti SQL Server, è necessario abilitare l'integrazione CLR. A tale scopo, utilizzare l'opzione clr enabled della stored procedure sp_configure. Per ulteriori informazioni, vedere l'argomento Opzione clr enabled nel sito Web Microsoft.

Nell'elenco seguente è riportato un riepilogo dei vantaggi offerti dall'utilizzo di un linguaggio .NET Framework anziché Transact-SQL:

  • Modello di programmazione avanzato   I linguaggi .NET offrono costrutti e funzionalità in precedenza non disponibili agli sviluppatori SQL Server.

  • Sicurezza avanzata   Il codice gestito viene eseguito in un ambiente Common Language Runtime ospitato dal modulo di gestione di database. Di conseguenza gli oggetti di database .NET Framework sono più sicuri delle stored procedure estese disponibili nelle versioni precedenti di SQL Server. Quando si utilizzano gli oggetti di database creati in Visual Basic o Visual C#, la sicurezza dall'accesso di codice di questi linguaggi è combinata con le autorizzazioni basate sull'utente di SQL Server.

  • Tipi e aggregazioni definiti dall'utente   I tipi e le aggregazioni definiti dall'utente sono due nuovi oggetti di database gestiti che espandono le funzionalità di archiviazione e query di SQL Server.

  • Ambiente di sviluppo comune   Lo sviluppo di database è integrato nell'ambiente di sviluppo di Microsoft Visual Studio. Gli sviluppatori utilizzano per lo sviluppo e il debug degli script e degli oggetti di database gli stessi strumenti adoperati per scrivere componenti e servizi .NET Framework di livello intermedio o di livello client.

  • Prestazioni migliori   Le prestazioni di alcune funzioni, ad esempio quelle che consentono di eseguire operazioni matematiche su ogni riga di un database, potrebbero risultare migliori se tali funzioni, anziché essere scritte nel codice interpretato Transact-SQL, fossero assembly compilati da un progetto Visual Basic o Visual C#. È ad esempio possibile ottenere miglioramenti nelle prestazioni in particolare per le funzioni che eseguono operazioni sui valori interi. Tali risultati non sono tuttavia possibili per le stored procedure che accedono solo ai dati.

  • Ricchezza del linguaggio   Visual Basico Visual C# forniscono funzionalità non disponibili in Transact-SQL, quali matrici, gestione sofisticata delle eccezioni e riusabilità del codice.

  • Riusabilità del codice   È possibile creare e distribuire una libreria di assembly gestiti seguendo una procedura più semplice della distribuzione di uno script Transact-SQL.

  • Estensibilità utilizzando Visual Basic o Visual C# è possibile creare due oggetti di database che non possono essere creati tramite Transact-SQL: aggregati e tipi definiti dall'utente.

  • Competenze esistenti   È possibile utilizzare e migliorare le proprie competenze in materia di linguaggi e ambiente di sviluppo in cui si è già acquisita una certa esperienza per creare oggetti di database.

  • Operazioni di sviluppo di alto livello   Quando si sviluppano oggetti di database utilizzando il modello di progetto SQL Server, si agisce su un livello di integrazione completa con il sistema del progetto che include le operazioni di compilazione, debug e distribuzione su più server.

  • Stabilità e affidabilità   Gli oggetti di database creati mediante Visual Basic o Visual C# sono più sicuri, stabili, potenti e affidabili delle stored procedure estese, che potrebbero produrre perdite di memoria o altri problemi che comportano una riduzione delle prestazioni e dell'affidabilità del server. Quando si eseguono stored procedure create in Visual Basic o Visual C#, la gestione della memoria e il threading non vengono eseguiti dalla stored procedure e pertanto vengono gestiti in modo più affidabile.

Stored procedure e trigger

Le stored procedure sono un insieme precompilato di istruzioni di programmazione per l'esecuzione di operazioni nel database, archiviate con un nome ed elaborate come unità. Per ulteriori informazioni sulle stored procedure, vedere la documentazione relativa a SQL Server.

Un trigger è un particolare tipo di stored procedure che viene avviato quando si modificano i dati in una tabella specificata utilizzando una o più operazioni di modifica dei dati: Update, insert o delete. È inoltre possibile creare trigger a livello di database che vengano attivati in risposta a istruzioni DDL (Data Definition Language). Questi trigger possono essere utilizzati per eseguire attività amministrative nel database, ad esempio controllo e regolamentazione delle operazioni di database. Per ulteriori informazioni sui trigger, vedere la documentazione relativa a SQL Server.

Lo sviluppo delle stored procedure e dei trigger è potenziato dalla ricchezza del linguaggio di Visual Basic e Visual C#, in particolare quando si implementa la complessa logica procedurale richiesta per l'applicazione delle regole business. Inoltre .NET Framework contiene molte librerie, tra cui, di particolare interesse, quelle che consentono di gestire molti aspetti della crittografia, le ampie librerie matematiche e l'accesso esterno ai servizi Web, ai file e ai sistemi di comunicazione business-to-business.

Funzioni

Le funzioni agiscono su uno o più valori per la restituzione di un valore scalare o una tabella. Per ulteriori informazioni sui tipi di funzione disponibili nel linguaggio di programmazione Transact-SQL, vedere la documentazione relativa a SQL Server.

Analogamente alle stored procedure e ai trigger, lo sviluppo delle funzioni è migliorato grazie alla ricchezza del linguaggio di Visual Basic e Visual C#, nonché all'accesso a molte librerie contenute in .NET Framework.

Aggregati

Le funzioni di aggregazione vengono utilizzate per riepilogare tutti i dati presenti in una tabella, nonché per eseguire un calcolo su un insieme di valori e restituire un singolo valore scalare. Per ulteriori informazioni sulle funzioni di aggregazione disponibili nel linguaggio di programmazione Transact-SQL, vedere la documentazione relativa a SQL Server.

Per integrare queste funzioni di aggregazione, è possibile definire nuovi aggregati per l'esecuzione di funzioni aritmetiche più complesse. È ad esempio possibile eseguire un calcolo sui dati contenuti in molte righe e restituire un valore o creare una stringa concatenata.

Tipi definiti dall'utente

I tipi specificano la natura dei dati. Per informazioni sul set di tipi di dati di sistema forniti con SQL Server, vedere la documentazione relativa a SQL Server.

Utilizzando Visual Basic e Visual C# si possono definire nuovi tipi per non essere più limitati a quelli predefiniti forniti con SQL Server. È possibile creare tipi semplici, quali i codici postali, o più complessi per l'analisi delle informazioni restituite da una transazione con carta di credito. Inoltre, quando si utilizzano tipi definiti dall'utente, è possibile interpretare e gestire i dati sia sul client SQL che su SQL Server. ADO.NET consente di scaricare un assembly contenente una definizione di tipo da SQL Server e utilizzarla per esaminare i dati sul client SQL.

Vedere anche

Attività

Procedura: creare un progetto per gli oggetti di database che utilizzano l'integrazione di Common Language Runtime di SQL Server

Procedura: creare ed eseguire una stored procedure SQL Server tramite l'integrazione di Common Language Runtime

Procedura: creare ed eseguire un trigger SQL Server tramite l'integrazione di Common Language Runtime

Procedura: creare ed eseguire un aggregato SQL Server tramite l'integrazione di Common Language Runtime

Procedura: creare ed eseguire una funzione SQL Server definita dall'utente tramite l'integrazione di Common Language Runtime

Procedura: creare ed eseguire un tipo SQL Server definito dall'utente tramite l'integrazione di Common Language Runtime

Procedura dettagliata: creazione di una stored procedure nel codice gestito

Procedura: eseguire il debug di una stored procedure CLR SQL

Riferimenti

Attributi per oggetti di database e progetti di database CLR SQL

Concetti

Introduzione all'integrazione con CLR di SQL Server (ADO.NET)

Vantaggi dell'utilizzo di codice gestito per creare oggetti di database