SQLCLR, SQL Server içinde .NET kodu çalıştırma yeteneğidir.
İnsanlar SQLCLR'den bahsettiklerinde genellikle özel .NET kodu (Saklı Yordamlar, İşlevler, Tetikleyiciler, Kullanıcı Tanımlı Türler ve Kullanıcı Tanımlı Toplamalar) yazma yeteneğinden bahseder. Bu durumda, bu yetenek içerisindeki "clr etkin" sunucu seçeneği ile açılıp kapatılabilir sp_configure
ve bunun Yüzey Alanı Yapılandırma GUI'sinde "CLR Entegrasyonu" olarak adlandırıldığına inanıyorum. .NET işlevselliği eklemek , derlenmiş .NET kodunu SQL Server'a yüklemek için CREATE CEMBLY kullanılmasını gerektirir .
Ancak, "clr etkin" seçeneği 0
/ "kapalı" / "devre dışı" olarak ayarlanmış olsa bile , CLR işlevselliği iç işlevler ve bazı yerleşik işlevler için hala kullanılmaktadır ve "Windows fiberlerini kullan" / "olmadığı sürece her zaman orada olacaktır. hafif havuzlama "seçeneği etkin.
SQLCLR'nin ne olduğu, ne olduğu ve ne yapabileceği hakkında çok ayrıntılı bir açıklama için lütfen SQL Server Central: SQLCLR'ye Merdiven Seviye 1: SQLCLR nedir hakkında bu konuda yazdığım makaleye bakın. (bu sitedeki içeriği görüntülemek için ücretsiz kayıt gerekir). Bu makalenin soyulmuş bir sürümü aşağıdaki StackOverflow yanıtında kullanılabilir: Ne zaman SQL Server'da bir CLR işlevine ihtiyacımız var? .
Örneğin, veritabanlarına özel .NET kodunun eklenmesine izin verip vermediğini bilmek istiyorsanız , aşağıdakini çalıştırın ve "run_value" alanını kontrol edin:
EXEC sp_configure 'clr enabled';
Kaynak İzleyicisi'ndeki SQLCLR bekleme türünün anlamı ile ilgili olarak , lütfen aşağıdaki blog yayınına bakın:
Nasıl Çalışır: SQL Server 2008 Etkinlik İzleyicisi'nde SQLCLR bekleme kategorisinin arkasında ne var?
ve bu yazıdan ilgili hattın (baktığınız SQLCLR kategorisine ait olduğu gibi) olduğuna inanıyorum:
Ne buldum beklendiği gibi wait_types birkaç göz ardı edilmesi gerektiğiydi.