Deaktiviert Lightweight Pooling integrierte CLR-Einrichtungen?


7

Wenn Sie SQL Server im Glasfasermodus ( Lightweight Pooling ) ausführen, wird die Verwendung von SQL CLR deaktiviert:

Die Ausführung der Common Language Runtime (CLR) wird beim Lightweight-Pooling nicht unterstützt. Deaktivieren Sie eine von zwei Optionen: "clr enabled" oder "lightweight pooling". Zu den Funktionen, die auf CLR basieren und im Glasfasermodus nicht ordnungsgemäß funktionieren, gehören der Hierarchiedatentyp, die Replikation und die richtlinienbasierte Verwaltung.

Auf der anderen Seite, zu deaktivieren SQL CLR allein (ohne Lightweightpooling ermöglicht) nicht nicht deaktiviert die eingebaute in CLR - Typen wie geometryund geography(wenn auch hierarchyidoben erwähnt), wie in gezeigt Wie kann „HierarchyID“ Art der Arbeit , wenn „CLR“ ist deaktiviert ?

Einige neue Sprachfunktionen basieren nun auf der CLR, zum Beispiel die FORMATFunktion :

FORMAT basiert auf dem Vorhandensein der .NET Framework Common Language Runtime (CLR).

Deaktiviert das Ausführen von SQL Server im Glasfasermodus die FORMATFunktion und / oder die Verwendung der CLR-Typen?

Antworten:


9

Ja.

Im Glasfasermodus ist nicht alles verfügbar, was die CLR benötigt.

Zum Beispiel beide:

SELECT FORMAT(GETDATE(), N'd', N'en-us');

und:

DECLARE @g geometry;
SELECT @g;

... die (leicht irreführende) Fehlermeldung zurückgeben:

Meldung 5846, Ebene 16, Status 2, Zeile 13 Die
Ausführung der Common Language Runtime (CLR) wird unter Lightweight Pooling nicht unterstützt.
Deaktivieren Sie eine von zwei Optionen: "clr enabled" oder "lightweight pooling".

Es ist das Lightweight-Pooling, das das Problem darstellt. Keine Einstellung der clr enabledOption ermöglicht die Ausführung von CLR jeglicher Art unter Lightweight-Pooling.


Das ist definitiv eine schlecht formulierte Fehlermeldung, zumindest in diesem Zusammenhang. Es wird die falsche Annahme getroffen, dass die CLR-basierte Funktionalität, die versucht wird, von einer vom Benutzer erstellten Assembly stammt. Daher müssen Sie eine xoder die andere auswählen. Sie hätten einfach sagen sollen: "Deaktivieren Sie das Lightweight-Pooling, um CLR-basierte Funktionen zu verwenden (oder weil Sie es sowieso nicht verwenden sollten)." Um fair zu sein, war diese Fehlermeldung wahrscheinlich nur für den Fall gedacht, dass jemand versucht, sp_configurebeide clr enabledund gleichzeitig lightweight poolingauf 1 zu setzen. In diesem Fall ist die Meldung sinnvoll.
Solomon Rutzky
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.