Sql-Server

SQL Server Management Studio (SSMS) 中活動監視器中的 SQLCLR 等待類型是什麼?

  • April 21, 2016

當我檢查我們的 SQL Prod 伺服器時,每次打開活動監視器時,我總是會SQLCLR在活動監視器的資源等待部分的第一個列表中看到。它總是有一個很高的數字。是SQLCLR為了什麼?SQLCLR在活動監視器中具有高資源等待數的伺服器是否不好?

SQLCLR 是在 SQL Server 中執行 .NET 程式碼的能力。

當人們談到 SQLCLR 時,他們通常指的是編寫自定義 .NET 程式碼(儲存過程、函式、觸發器、使用者定義類型和使用者定義聚合)的能力。在這種情況下,可以通過 中的“啟用 clr”的伺服器選項打開和關閉此功能sp_configure,我相信它在 Surface Area Configuration GUI 中稱為“CLR 集成”。添加 .NET 功能需要使用CREATE ASSEMBLY將已編譯的 .NET 程式碼載入到 SQL Server 中。

但是,即使將“啟用 clr”選項設置為0/“關閉”/“禁用”,CLR 功能仍用於內部功能和一些內置功能,並且將始終存在,除非“使用 Windows 光纖”/“輕量級池”選項已啟用。

有關 SQLCLR 是什麼、不是什麼以及它能做什麼的非常詳細的描述,請參閱我在 SQL Server Central 上寫的關於此主題的文章:通往 SQLCLR 級別 1:什麼是 SQLCLR?(需要免費註冊才能查看該網站上的內容)。該文章的精簡版本可在以下 StackOverflow 答案中找到:我們何時需要 SQL Server 中的 CLR 函式?.

如果您想知道實例是否允許將自定義.NET 程式碼添加到數據庫,請執行以下命令並檢查“run_value”欄位:

EXEC sp_configure 'clr enabled';

關於 Resource Monitor 中SQLCLR等待類型的含義,請看以下博文:

工作原理:SQL Server 2008 活動監視器中的 SQLCLR 等待類別背後的原因

我相信該文章的相關行(因為它與您正在查看的 SQLCLR 類別有關)是:

我發現有幾個 wait_types 應該被忽略,因為它們是預期的等待。

引用自:https://dba.stackexchange.com/questions/135849