現象
Microsoft SQL Server 2012、2014、または 2016 を使用し、SQL Server 共通言語ランタイム (SQL CLR) 統合を使用してユーザー定義型 (UDT) を作成します。
ストアド プロシージャ パラメーターとして UDT を使用する場合、リモート プロシージャ コール (RPC) メカニズムを介してサーバーに渡されます。 このメカニズムは、メモリ内の UDT をホストするアセンブリを内部的に読み込もうとします。
この状況では、ストアド プロシージャの実行パフォーマンスが低下することがあります。 これは、RPC が SQLCLR アセンブリを不必要に読み込み、アンロードするときに発生する非効率性が原因で発生します。
この問題は、 CLR_AUTO_EVENT 型および CMEMTHREAD 型の待機時間が長くなるという形で表されます。 複数の同時ユーザーが同じストアド プロシージャを実行している場合に、特にそうです。
解決策
SQL Server の Service Pack の情報
この更新プログラムは、以下の SQL Server の Service Pack で修正されています。
Service Pack 2 (SQL Server 2016)
Service Pack 3 for SQL Server 2014
Service Pack 4 for SQL Server 2012
SQL Server の Service Pack について:
Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 マイクロソフトでは、最新の Service Pack と、その Service Pack 用の最新の累積的な更新プログラムを適用することをお勧めします。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の資料の表 1 を参照してください。
SQL Server とそのコンポーネントのバージョン、エディション、および更新プログラムのレベルを確認する方法
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。