SQL Server'da CLR yüklemek için genişletilmiş saklı yordamların veya SP_OA saklı yordamların kullanılması desteklenmez
Özgün ürün sürümü: SQL Server
Özgün KB numarası: 322884
Özet
SQL Server 2005 ve sonraki sürümlerde Ortak Dil Çalışma Zamanı (CLR) ve CLR dillerinde yazılan destek yordamları, işlevler, tetikleyiciler, türler ve toplamalar barındırılır. Bu sürümlerde, genişletilmiş saklı yordamları veya sp_OA
saklı yordamları kullanarak CLR yükleyemezsiniz.
Özgün ürün sürümü: SQL Server
Özgün KB numarası: 322884
Daha fazla bilgi
.NET Framework derlemesiSystem.Runtime.InteropServices
, yönetilmeyen koddan derlemeleri çağırmak için sağlam bir ortam sağlar. Ancak, CLR ve SQL Server iç uygulamaları arasında birkaç teknik uyumsuzluk vardır.
Iş parçacığı
CLR, performansı artırmak için İş Parçacığı Yerel Depolaması uygular.
Ayrıca CLR yalnızca iş parçacığı tabanlı zamanlama kullanır ve Fiber mod zamanlamayı desteklemez. Ancak SQL Server Fiber modu zamanlamasını kullanabilir. Bu özelliği yapılandırmak için, basit havuzlama seçeneğini kullanarak saklı yordamı çalıştırın sp_configure
. Bu konu hakkında daha fazla bilgi için bkz. Basit havuza alma Sunucusu Yapılandırma Seçeneği.
Bellek
Genişletilmiş saklı yordamların ve OLE Otomasyonu'nun kullanımı, SQL Server belleğinin sanal bellek adres alanında çalışır. Varsayılan SQL Server bellek, SQL Server kullanabileceği belleğin yalnızca bir bölümüdür ve CLR bu bellek kaynakları için mevcut uygulamalarla rekabet eder.
COM birlikte çalışabilirliği
Bu bölüm özellikle SQL Server'de OLE Otomasyonu kullanımını ele alır ve hem işlem içi hem de işlem dışı COM nesneleri için geçerlidir. İşlev arabirimleri için derleme meta verileri, tüm çağrılar için türlenmiş bir mekanizma uygular.
Bu tasarımın bir parçası olarak, bir derleme için COM Çağrılabilen sarmalayıcı, bir ClassID'yi yönetilen sınıfın bir üyesine eşlemek için bir dış mekanizma kullanmalıdır. Bu açık eşleme nedeniyle, yönetilmeyen bir perspektiften kullanılabilir arabirimlerin kök listesini oluşturma olanağı yoktur.
Genişletilmiş saklı yordam sp_oaCreate
, belirli bir arabirim için nesnenin desteğini belirlemek için arabirimini kullanır IUnknown::QueryInterface
. CLR ile yönetilmeyen kod arasındaki birlikte çalışabilirlik, arabirimleri uygulamak için IDispatch arabirimine dayanır. CLR tabanlı derlemedeki bir QueryInterface
yönteme eşdeğer olmadığından, nesnesinin bir örneğini oluşturamazsınız.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin