SQL Server Management Studio (SSMS) 中活動監視器中的 SQLCLR 等待類型是什麼?
當我檢查我們的 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 應該被忽略,因為它們是預期的等待。