web-dev-qa-db-fra.com

Quel est le type d'attente SQLCLR dans le moniteur d'activité dans SQL Server Management Studio (SSMS)?

Lorsque je vérifie notre serveur SQL Prod, chaque fois que j'ouvre le moniteur d'activité, je vois toujours SQLCLR dans la première liste de la section d'attente des ressources du moniteur d'activité. Il a toujours un nombre élevé. À quoi sert SQLCLR? Est-ce mauvais pour le serveur ayant ce SQLCLR avec un nombre d'attente de ressources élevé dans le moniteur d'activité?

10
Keith Rivera

SQLCLR est la possibilité d'exécuter du code .NET dans SQL Server.

Lorsque les gens parlent de SQLCLR, ils font généralement référence à la possibilité d'écrire du code .NET personnalisé (procédures stockées, fonctions, déclencheurs, types définis par l'utilisateur et agrégats définis par l'utilisateur). Dans ce cas, cette capacité peut être activée et désactivée via l'option de serveur "clr enabled" dans sp_configure, et je crois que cela s'appelle "Intégration CLR" dans l'interface graphique de configuration de la surface d'exposition. L'ajout de fonctionnalités .NET nécessite l'utilisation de CREATE Assembly pour charger le code .NET compilé dans SQL Server.

Cependant, même avec l'option "clr enabled" définie sur 0/"off"/"désactivé", la fonctionnalité CLR est toujours utilisée pour la fonctionnalité interne et certaines fonctions intégrées et sera toujours là, à moins que l'option "utiliser les fibres Windows"/"regroupement léger" soit activée.

Pour une description très détaillée de ce que SQLCLR est, n'est pas et de ce qu'il peut faire, veuillez consulter l'article que j'ai écrit à ce sujet sur SQL Server Central: Escalier vers SQLCLR niveau 1: qu'est-ce que SQLCLR? = (une inscription gratuite est requise pour visualiser le contenu de ce site). Une version allégée de cet article est disponible dans la réponse StackOverflow suivante: Quand avons-nous besoin d'une fonction CLR dans SQL Server? .

Si vous voulez savoir si l'instance autorise ou non l'ajout de code personnalisé .NET aux bases de données, exécutez ce qui suit et vérifiez le champ "run_value":

EXEC sp_configure 'clr enabled';

En ce qui concerne la signification du type d'attente [~ # ~] sqlclr [~ # ~] dans le moniteur de ressources, veuillez consulter l'article de blog suivant:

Fonctionnement: ce qui se cache derrière la catégorie d'attente SQLCLR dans le moniteur d'activité SQL Server 2008

et je pense que la ligne pertinente (en ce qui concerne la catégorie SQLCLR que vous regardez) de ce poste est:

Ce que j'ai trouvé, c'est que plusieurs des types wait_types doivent être ignorés car ils sont des attentes.

11
Solomon Rutzky