web-dev-qa-db-ja.com

軽量プーリングは組み込みのCLR機能を無効にしますか?

SQL Serverをファイバーモード( 軽量プーリング )で実行すると、SQL CLRの使用が無効になります。

共通言語ランタイム(CLR)の実行は、軽量プーリングではサポートされていません。 「clr enabled」または「lightweight pooling」の2つのオプションのいずれかを無効にします。 CLRに依存し、ファイバーモードでは適切に機能しない機能には、階層データタイプ、レプリケーション、およびポリシーベースの管理が含まれます。

一方、 SQL CLRを無効にする 単独(軽量プールを有効にせずに)では、しないのような組み込みのCLR型を無効にしますgeometry、およびgeographyhierarchyidについては上記で説明していますが) 「CLR」が無効になっている場合、「HierarchyID」タイプはどのように機能しますか? =

現在、いくつかの新しい言語機能はCLRに依存しています。たとえば FORMAT関数

FORMATは、.NET Framework共通言語ランタイム(CLR)の存在に依存しています。

SQL Serverをファイバーモードで実行すると、FORMAT関数が無効になったり、CLRタイプを使用したりしますか?

7
Paul White 9

はい。

ファイバーモードで実行している場合、CLRを必要とするすべてのものは利用できません。

たとえば、両方:

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

そして:

DECLARE @g geometry;
SELECT @g;

...(少し誤解を招く)エラーメッセージを返す:

メッセージ5846、レベル16、状態2、行13
共通言語ランタイム(CLR)の実行は、軽量プーリングではサポートされていません。
「clr enabled」または「lightweight pooling」の2つのオプションのいずれかを無効にします。

問題となるのは軽量プーリングです。clr enabledオプションを設定しないと、軽量プーリングであらゆる種類のCLR実行が許可されます。

9
Paul White 9