SQL Prodサーバーを確認すると、アクティビティモニターを開くたびに、アクティビティモニターのリソース待機セクションの最初のリストに常にSQLCLR
が表示されます。それは常に高い数を持っています。 SQLCLR
の目的は何ですか?アクティビティモニターで、リソース待機数が多いSQLCLR
を持つサーバーが悪いのですか?
SQLCLRは、SQL Server内で.NETコードを実行する機能です。
SQLCLRについて話すとき、彼らは通常、カスタム.NETコード(ストアドプロシージャ、関数、トリガー、ユーザー定義型、およびユーザー定義集計)を作成する機能を指します。この場合、この機能はsp_configure
内の「clr enabled」のサーバーオプションを介してオンとオフを切り替えることができ、セキュリティ構成GUIでは「CLR統合」と呼ばれていると思います。 .NET機能を追加するには、コンパイル済みの.NETコードをSQL Serverにロードするために CREATE Assembly を使用する必要があります。
ただし、 "clr enabled"オプションが0
/"off"/"disabled"に設定されていても、CLR機能は内部機能と一部の組み込み機能に引き続き使用され、「use Windowsファイバー」/「軽量プーリング」オプションが有効になっています。
SQLCLRとは何か、できないこと、およびそれができることの詳細については、SQL Server Centralでこのトピックについて書いた記事を参照してください。 SQLCLRレベル1への階段1:SQLCLRとは? =(そのサイトのコンテンツを表示するには無料登録が必要です)。その記事の簡略版は、次のStackOverflowの回答で入手できます: SQL ServerでCLR関数が必要になるのはいつですか? 。
インスタンスがcustom.NETコードのデータベースへの追加を許可しているかどうかを知りたい場合は、次のコマンドを実行して、「run_value」フィールドを確認します。
EXEC sp_configure 'clr enabled';
リソースモニターでの[〜#〜] sqlclr [〜#〜]待機タイプの意味については、次のブログ投稿を参照してください。
仕組み:SQL Server 2008アクティビティモニターのSQLCLR待機カテゴリの背後にあるもの
そして、私はその投稿からの関連する行(あなたが見ているSQLCLRカテゴリに関係するため)は次のとおりだと思います:
私が見つけたのは、いくつかのwait_typeは予期された待機であるため、無視する必要があるということです。