SQLCLR adalah kemampuan untuk menjalankan kode .NET dalam SQL Server.
Ketika orang berbicara tentang SQLCLR, mereka biasanya merujuk pada kemampuan untuk menulis kode .NET kustom (Prosedur Tersimpan, Fungsi, Pemicu, Jenis yang Ditentukan Pengguna, dan Agregat yang Ditentukan Pengguna). Dalam hal ini, kemampuan ini dapat dinyalakan dan dimatikan melalui opsi server "clr enabled" di dalam sp_configure
, dan saya percaya itu disebut "Integrasi CLR" di GUI Konfigurasi Area Permukaan. Menambahkan fungsionalitas .NET memerlukan CREATE ASSEMBLY untuk memuat kode .NET yang dikompilasi ke dalam SQL Server.
Namun, bahkan dengan opsi "clr diaktifkan" diatur ke 0
/ "off" / "dinonaktifkan", fungsionalitas CLR masih digunakan untuk fungsionalitas internal dan beberapa fungsi bawaan dan akan selalu ada di sana, kecuali jika "gunakan serat Windows" / " opsi "penyatuan ringan diaktifkan.
Untuk deskripsi yang sangat terperinci tentang apa SQLCLR itu, bukan, dan apa yang bisa dilakukannya, silakan lihat artikel yang saya tulis tentang topik ini di SQL Server Central: Stairway to SQLCLR Level 1: Apa itu SQLCLR? (Pendaftaran gratis diperlukan untuk melihat konten di situs itu). Versi singkat dari artikel itu tersedia di jawaban StackOverflow berikut: Kapan kita membutuhkan fungsi CLR di SQL Server? .
Jika Anda ingin tahu apakah instance memperbolehkan kode .NET kustom untuk ditambahkan ke database, jalankan yang berikut dan periksa bidang "run_value":
EXEC sp_configure 'clr enabled';
Sehubungan dengan arti dari jenis tunggu SQLCLR di Resource Monitor, silakan lihat posting blog berikut:
Bagaimana Cara Kerjanya: Apa yang ada di balik kategori tunggu SQLCLR di SQL Server 2008 Activity Monitor
dan saya percaya garis yang bersangkutan (karena berkaitan dengan kategori SQLCLR yang Anda lihat) dari pos itu adalah:
Apa yang saya temukan adalah bahwa beberapa wait_types harus diabaikan karena mereka menunggu.
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;