このクエリを実行すると、CLR_AUTO_EVENT
の待機時間が長くなります。
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;
関連する質問 SQL Server Management Studio(SSMS)内のアクティビティモニターのSQLCLR待機タイプは何ですか? 、SQL Server内で.NETマネージコードを実行すると表示されると読みました。
ただし、それを使用しているとは思いません。EXEC sp_configure 'clr enabled'
を実行すると、次のようになります。
有効になっていないように見えます。誰かが何が起こっているのか説明できますか?
PS:SQL Server 2017 Developer Edition(14.0.3026.27)を実行しています。
SQL Serverは、いくつかの機能に対して内部的にCLRを使用します。これらの待機は、ManualResetEventまたはAutoResetEventで待機しているCLRバックグラウンドスレッドを追跡します。 CLR_MANUAL_EVENTおよびCLR_AUTO_EVENTでの高い待機 によると、これらはバックグラウンド待機であり(つまり、ユーザーセッションで待機時間が発生していない)、これらのイベントを直接使用する安全でないCLRコードがない限り、無視しても問題ありません。