SQLCLR es la capacidad de ejecutar código .NET dentro de SQL Server.
Cuando las personas hablan de SQLCLR, generalmente se refieren a la capacidad de escribir código .NET personalizado (procedimientos almacenados, funciones, disparadores, tipos definidos por el usuario y agregados definidos por el usuario). En este caso, esta capacidad se puede activar y desactivar a través de la opción del servidor "clr enabled" dentro sp_configure
, y creo que se llama "Integración CLR" en la GUI de configuración de superficie. Agregar la funcionalidad .NET requiere usar CREATE ASSEMBLY para cargar el código .NET compilado en SQL Server.
Sin embargo, incluso con la opción "clr enabled" establecida en 0
/ "off" / "disabled", la funcionalidad CLR todavía se usa para la funcionalidad interna y algunas funciones integradas y siempre estará ahí, a menos que "use fibras de Windows" / " la opción de agrupación ligera "está habilitada.
Para obtener una descripción muy detallada de lo que SQLCLR es, no es y de lo que puede hacer, consulte el artículo que escribí sobre este tema en SQL Server Central: Escalera a SQLCLR Nivel 1: ¿Qué es SQLCLR? (Se requiere registro gratuito para ver el contenido de ese sitio). Una versión simplificada de ese artículo está disponible en la siguiente respuesta de StackOverflow: ¿ Cuándo necesitamos una función CLR en SQL Server? .
Si desea saber si la instancia permite o no que se agregue código .NET personalizado a las bases de datos, ejecute lo siguiente y marque el campo "run_value":
EXEC sp_configure 'clr enabled';
Con respecto al significado del tipo de espera SQLCLR en el Monitor de recursos, consulte la siguiente publicación de blog:
Cómo funciona: qué hay detrás de la categoría de espera SQLCLR en el Monitor de actividad de SQL Server 2008
y creo que la línea pertinente (en lo que respecta a la categoría SQLCLR que está viendo) de esa publicación es:
Lo que encontré fue que varios de los wait_types deberían ignorarse ya que se espera que esperen.