Riepilogo

Microsoft non supporta l'utilizzo di Microsoft Common Language Runtime (incluso il.NET Framework) per qualsiasi COM Callable Wrapper o Estensioni gestite per C++ in Microsoft SQL Server 2005, Microsoft SQL Server 2000 o Microsoft SQL Server 7.0. Questa limitazione per il supporto relativo direttamente per l'utilizzo di stored procedure estese e per l'utilizzo dell'automazione OLE per qualsiasi il caricamento delle librerie caricate per eseguire nello spazio di memoria di SQL Server.

SQL Server 2005 e versioni successive l'hosting di Common Language Runtime (CLR) e supportano le procedure, funzioni, trigger, tipi e aggregati redatti nelle lingue CLR. In queste versioni, è possibile caricare Common Language Runtime utilizzando proceduress stored estese o sp_OA stored procedure.

Ulteriori informazioni

L'assembly di.NET Framework System.Runtime.InteropServices fornisce un ambiente affidabile per gli assembly di chiamata da codice non gestito. Tuttavia, esistono diversi discordances tecnica tra implementazioni interne di Common Language Runtime e di SQL Server:

Threading

Per migliorare le prestazioni, CLR implementa Thread Local Storage.

Per ulteriori informazioni sui problemi correlati all'utilizzo di Thread Local Storage in stored procedure estese, fare clic sui numeri per visualizzare gli articoli della Microsoft Knowledge Base riportato di seguito:

163449 utilizzo di Thread Local Storage in una stored procedure estesa

190987 come utilizzare le stored procedure estese

Inoltre, CLR utilizza basate solo sul thread di programmazione e non supporta la programmazione in modalità Fiber. Tuttavia, SQL Server è possibile utilizzare la programmazione in modalità Fiber. Per configurare questa proprietà, utilizzare uno dei seguenti metodi:

  • Eseguire la sp_configure stored procedure utilizzando l'opzione lightweight pooling .

  • In SQL Server 2000 o SQL Server 7.0, è possibile configurare questa proprietà in SQL Server Enterprise Manager. A tale scopo, attenersi alla seguente procedura:

    1. In Enterprise Manager, espandere Microsoft SQL Server, espandere Il gruppo di SQL Servere fare in modo univoco l'istanza di SQL Server 7.0 o SQL Server 2000.

    2. Nella finestra di dialogo Proprietà SQL Server (configurazione) , fare clic sulla scheda processore .

    3. Fare clic per selezionare la casella di controllo Usa Windows NT fiber .

  • In SQL Server 2005, è possibile configurare questa proprietà in SQL Server Management Studio. A tale scopo, attenersi alla seguente procedura:

    1. In Management Studio, connettersi all'istanza di SQL Server 2005.

    2. In Esplora oggetti, destro l'istanza di SQL Server e quindi scegliere proprietà.

    3. Nella finestra di dialogo Proprietà Server , fare clic su processori.

    4. Fare clic per selezionare la casella di controllo Usa Windows fiber (il lightweight pooling) .

Memoria

L'utilizzo di stored procedure estese e di automazione OLE sia eseguito nello spazio degli indirizzi di memoria virtuale della memoria di SQL Server. La memoria di SQL Server predefinita è solo una parte della memoria che può comportare l'utilizzo di SQL Server e CLR in competizione con le implementazioni esistenti per le risorse di memoria.
Per ulteriori informazioni sulla gestione della memoria di SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

316749 non vi sia sufficiente memoria virtuale quando si dispone di un numero elevato di database in SQL Server

Interoperabilità COM

In questa sezione interessa specificamente all'utilizzo dell'automazione OLE in SQL Server e viene applicata agli oggetti COM in-process e out-of-process. I metadati di assembly per le interfacce di funzione implementa un meccanismo di fortemente tipizzata per tutte le chiamate.

Come parte di questa progettazione, il COM Callable wrapper per un assembly deve utilizzare un meccanismo esterno di mapping di un ClassID a un membro di una classe gestita. A causa di questo mapping esplicito, non è possibile dal punto di vista non gestito per stabilire un elenco principale delle interfacce disponibili.

La stored procedure estesa sp_oaCreate utilizza l'interfaccia IUnknown:: QueryInterface per determinare il supporto dell'oggetto per una particolare interfaccia. L'interoperabilità tra Common Language Runtime e codice non gestito si basa sull'interfaccia IDispatch per l'implementazione di interfacce. Poiché non esiste alcun equivalente a un metodo QueryInterface per un assembly di Common Language Runtime, è possibile creare un'istanza dell'oggetto.

Serve aiuto?

Amplia le tue competenze

Esplora i corsi di formazione >

Ottieni in anticipo le nuove caratteristiche

Partecipa a Microsoft Insider >

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?

Grazie per il feedback!

×