在 Windows 上安裝 SQL Server .NET 語言延伸模組
適用於:SQL Server 2019 (15.x) 和更新版本
了解如何在 Windows 上安裝適用於 SQL Server 的 .NET 語言延伸模組元件 (由 C# 使用)。 .NET 語言延伸模組是 SQL Server 語言延伸模組的一部分。
注意
此文章適用於在 Windows 上安裝適用於 SQL Server 的 .NET 語言延伸模組。 不支援 Linux。
必要條件
注意
功能和安裝選項會因 SQL Server 的版本而異。 使用版本選取器下拉式清單來選擇適當的 SQL Server 版本。
如果您想要安裝 .NET 語言延伸模組的支援,則需要 SQL Server 安裝程式。
.NET 語言延伸模組支援 .NET 6 和更新版本的執行階段,而且僅在 Windows 上受支援。
需要資料庫引擎執行個體。 您無法只安裝 .NET 語言延伸模組功能,但是您可以透過累加方式將其新增至現有的執行個體。
針對商務持續性,語言延伸模組支援 Always On 可用性群組。 您必須在每個節點上安裝語言延伸模組,並設定套件。 亦支援在 SQL Server 中的容錯移轉叢集執行個體上安裝 .NET 語言延伸模組。
請勿在網域控制站上安裝 SQL Server 語言延伸模組或 .NET 語言延伸模組。 安裝程式的語言延伸模組部分會失敗。
根據預設,系統會在 SQL Server 巨量資料叢集上安裝語言延伸模組與機器學習服務。 如果您使用的是巨量資料叢集,就不需要依照此文章中的步驟進行。 如需詳細資訊,請參閱對安裝有機器學習服務的 SQL Server 2019 巨量資料叢集執行 Python 與 R 指令碼。
重要
安裝完成之後,請務必完成此文章中所述的設定後步驟。 這些步驟包括讓 SQL Server 使用外部程式碼,以及新增 SQL Server 代表您執行 C# 程式碼所需的帳戶。 設定變更通常需要重新啟動執行個體,或重新啟動啟動控制板服務。
.NET 執行階段
.NET 6 長期支援 (LTS) 是最早支援的執行階段。 您可以下載適用於 Windows 的 .NET 執行階段。 不支援 Linux。
如果您想要使用 .NET 執行階段的最新 LTS 版本,則必須重新編譯 .NET 語言延伸模組。
取得安裝媒體
SQL Server 的下載位置因版本而異:
SQL Server Enterprise、Standard 和 Express Edition。 這些版本已獲得生產環境使用授權。 對於 Enterprise Edition 和 Standard Edition,請連絡您的軟體廠商以取得安裝媒體。 購買資訊和 Microsoft 合作夥伴目錄請見 Microsoft 購買網站。
執行安裝程式
如果是本機安裝,您必須以管理員身分執行安裝程式。 如果您是從遠端共用位置安裝 SQL Server,則必須使用對遠端共用位置具有讀取和執行權限的網域帳戶。
啟動 SQL Server 的安裝精靈。
在 [安裝] 索引標籤上,選取 [新增 SQL Server 獨立安裝或將功能加入至現有安裝] 。
在 [特徵選取] 頁面上,選取下列選項:
資料庫引擎服務:若要搭配 SQL Server 使用語言延伸模組,您必須安裝資料庫引擎的執行個體。 您可以使用預設或具名執行個體。
機器學習服務和語言延伸模組:此選項會安裝支援 C# 程式碼執行的語言延伸模組元件。
在 [準備安裝] 頁面上,確認包含這些選項,然後選取 [安裝] 。
- Database Engine 服務
- 機器學習服務和語言延伸模組
請注意組態檔儲存所在資料夾 (路徑
..\Setup Bootstrap\Log
底下) 的位置。 當安裝程式完成時,您可以在摘要檔案中檢閱已安裝的元件。當安裝程式完成之後,如果系統指示您重新啟動電腦,則請立即重新啟動。 當您完成安裝時,請務必閱讀安裝精靈提供的訊息。 如需詳細資訊,請參閱< View and Read SQL Server Setup Log Files>。
註冊語言延伸模組
遵循下列步驟來下載並註冊用於執行 C# 程式碼的 .NET 語言延伸模組。
從 SQL Server GitHub 存放庫的 .NET 語言延伸模組下載
dotnet-core-CSharp-lang-extension-windows-release.zip
檔案。 下載最新的 Windowsdotnet-core-CSharp-lang-extension-windows-release.zip
檔案。 如果您想要使用較新的 .NET 執行階段間,則需要從 GitHub 原始程式碼編譯dotnet-core-CSharp-lang-extension
。使用 SQL Server Management Studio (SSMS) 或 Azure Data Studio 來連線到您的 SQL Server 執行個體,並執行下列 Transact-SQL (T-SQL) 命令,以使用 CREATE EXTERNAL LANGUAGE 註冊 .NET 語言延伸模組。
修改此陳述式中的路徑,以反映所下載語言延伸模組 zip 檔案 (
dotnet-core-CSharp-lang-extension-windows-release.zip
) 的位置。
CREATE EXTERNAL LANGUAGE [dotnet] FROM (CONTENT = N'C:\path\to\dotnet-core-CSharp-lang-extension-windows-release.zip', FILE_NAME = 'dotnetextension.dll'); GO
重新啟動啟動控制板。
開啟 SQL Server 組態管理員。
在 [SQL Server 服務] 底下,以滑鼠右鍵按一下 [SQL Server 啟動控制板],然後選取 [重新啟動] 。
重新啟動服務
當安裝完成時,請先重新啟動資料庫引擎,然後再繼續執行下一個步驟,以啟用指令碼執行。
重新啟動該服務也會自動重新啟動相關的 SQL Server Launchpad 服務。
針對 SSMS 中的執行個體,可使用滑鼠右鍵按一下 [重新啟動] 命令,使用控制面板中的 [服務] 面板,或使用 SQL Server 組態管理員來重新啟動服務。
啟用指令碼執行
開啟 SQL Server Management Studio。 連線到您安裝語言延伸模組的執行個體、選取 [新增查詢] 開啟查詢視窗,然後執行下列命令:
EXEC sp_configure;
該功能預設為關閉 (
value
為0
),因此必須先由管理員明確啟用,才可以執行 C# 程式碼。若要啟用外部指令碼功能,請執行下列陳述式:
EXEC sp_configure 'external scripts enabled', 1; GO RECONFIGURE WITH OVERRIDE
如果您已針對機器學習服務啟用該功能,則請不要再次執行語言延伸模組的重新設定。 底層擴充性平台支援這兩者。
註冊外部語言
針對您要在其中使用語言擴充功能的每個資料庫,您必須使用 CREATE EXTERNAL LANGUAGE 來註冊外部語言。
下例會將外部語言呼叫的 dotnet
新增至 Windows 之 SQL Server 的資料庫。
CREATE EXTERNAL LANGUAGE [dotnet]
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'dotnetextension.dll');
GO
如需詳細資訊,請參閱 CREATE EXTERNAL LANGUAGE。
確認安裝
在安裝程式記錄中,檢查執行個體的安裝狀態。
使用下列步驟確認用於啟動外部指令碼的所有元件都正在執行。
在 SQL Server Management Studio 或 Azure Data Studio 中,開啟新的 [查詢] 視窗,並執行下列陳述式︰
EXEC sp_configure 'external scripts enabled';
run_value
現在設定為1
。開啟 [服務] 面板或 SQL Server 組態管理員,並確認 SQL Server Launchpad 服務正在執行。 每個安裝語言延伸模組的資料庫引擎執行個體應該都有一個該服務。 如需服務的詳細資訊,請參閱 SQL Server 語言延伸模組中的擴充性架構。
其他設定
如果驗證步驟成功,您就可以從 SQL Server Management Studio、Azure Data Studio、Visual Studio Code,或任何可以將 T-SQL 陳述式傳送到伺服器的其他用戶端來執行 C# 程式碼。
如果您在執行命令時遇到錯誤,請檢閱此節中的其他設定步驟。 您可能需要對服務或資料庫進行額外的適當設定。
在執行個體層級,額外設定可能包括:
在資料庫上,您可能需要下列設定更新:
注意
是否需要其他設定取決於您的安全性架構、SQL Server 的安裝位置,以及預期使用者如何連線至資料庫並執行外部指令碼。
建議的最佳化
在一切都正常運作之後,建議您將伺服器最佳化以支援 .NET 語言延伸模組。
針對 .NET 語言延伸模組將伺服器最佳化
SQL Server 安裝程式的預設設定是為了最佳化伺服器的平衡,以處理資料庫引擎支援的各種服務,其中可能包含擷取、轉換和載入 (ETL) 程序、報告、稽核,以及使用 SQL Server 資料的應用程式。 因此,在預設設定下,您可能會發現語言延伸模組的資源有時會受到限制或遭遇瓶頸,尤其是需要大量記憶體的作業。
為確保優先處理語言延伸模組工作並獲得適當的資源,建議您使用 SQL Server 資源管理員設定外部資源集區。 您也可以變更配置給資料庫引擎的記憶體數量,或增加在 SQL Server Launchpad 服務下執行的帳戶數目。
若要設定用來管理外部資源的資源集區,請參閱建立外部資源集區 (Transact-SQL)。
若要變更為資料庫保留的記憶體量,請參閱伺服器記憶體設定選項。
如果您使用標準版且沒有「資源管理員」,則可以使用「動態管理檢視 (DMV)」與「擴充事件」,以及 Windows 事件監視,以協助管理伺服器資源。
後續步驟
C# 開發人員可以從一些簡單的範例開始,並了解 C# 如何搭配 SQL Server 使用的基本概念。 針對下一個步驟,請參閱下列連結: