回答:
SQLCLRは、SQL Server内で.NETコードを実行する機能です。
SQLCLRについて話すとき、彼らは通常、カスタム.NETコード(ストアドプロシージャ、関数、トリガー、ユーザー定義型、およびユーザー定義集計)を作成する機能を指します。この場合、この機能は内の「clr enabled」のサーバーオプションを介してオンとオフを切り替えることができますが、セキュリティsp_configure
構成GUIでは「CLR統合」と呼ばれていると思います。.NET機能を追加するには、CREATE ASSEMBLYを使用して、コンパイル済みの.NETコードをSQL Serverにロードする必要があります。
ただし、 "clr enabled"オプションが0
/ "off" / "disabled"に設定されていても、CLR機能は内部機能と一部の組み込み機能に引き続き使用され、「Windowsファイバーの使用」/ "を除いて常に存在します軽量プーリング」オプションが有効になっています。
SQLCLRとは何か、できないこと、および何ができるかについての詳細な説明については、SQL Server Centralでこのトピックについて書いた記事を参照してください:SQLCLRレベル1への階段:SQLCLRとは何ですか?(そのサイトのコンテンツを表示するには無料登録が必要です)。その記事の簡略版は、次のStackOverflow回答で入手できます。SQLServerでCLR関数が必要になるのはいつですか?。
インスタンスがカスタム .NETコードのデータベースへの追加を許可しているかどうかを知りたい場合は、次のコマンドを実行して、「run_value」フィールドを確認します。
EXEC sp_configure 'clr enabled';
リソースモニターでのSQLCLR待機タイプの意味については、次のブログ投稿を参照してください。
仕組み:SQL Server 2008アクティビティモニターのSQLCLR待機カテゴリの背後にあるもの
そして、私はその投稿からの関連する行(あなたが見ているSQLCLRカテゴリに関係している)は次のとおりだと思います:
私が見つけたのは、いくつかのwait_typesは予期される待機であるため、無視する必要があるということです。
SELECT * FROM sys.dm_os_wait_stats WHERE wait_type IN ('CLR_AUTO_EVENT', 'CLR_CRST', 'CLR_JOIN', 'CLR_MANUAL_EVENT', 'CLR_MEMORY_SPY', 'CLR_MONITOR', 'CLR_RWLOCK_READER', 'CLR_RWLOCK_WRITER', 'CLR_SEMAPHORE', 'CLR_TASK_START', 'CLRHOST_STATE_ACCESS', 'ASSEMBLY_LOAD', 'FS_GARBAGE_COLLECTOR_SHUTDOWN', 'SQLCLR_APPDOMAIN', 'SQLCLR_ASSEMBLY', 'SQLCLR_DEADLOCK_DETECTION', 'SQLCLR_QUANTUM_PUNISHMENT') ORDER BY wait_time_ms DESC, wait_type ASC;