Установка расширения языка SQL Server .NET в Windows

Область применения: SQL Server 2019 (15.x) и более поздних версий

Узнайте, как установить компонент расширения языка .NET (используемый C#) для SQL Server в Windows. Расширение языка .NET входит в состав расширений языка SQL Server.

Примечание.

Эта статья предназначена для установки расширения языка .NET для SQL Server в Windows. ОС Linux не поддерживается.

Предварительные требования

Примечание.

Возможности компонентов и параметры установки зависят от версии SQL Server. Используйте раскрывающийся список селектора версий, чтобы выбрать соответствующую версию SQL Server.

  • Программа установки SQL Server необходима, если требуется установить поддержку расширения языка .NET.

  • Расширение языка .NET поддерживает среду выполнения .NET 6 и более поздних версий и поддерживается только в Windows.

  • Требуется экземпляр ядро СУБД. Вы не можете установить только компоненты расширения языка .NET, хотя их можно добавить постепенно в существующий экземпляр.

  • Для обеспечения непрерывности бизнес-процессов группы доступности AlwaysOn поддерживаются для расширений языка. Необходимо установить расширения языка и настроить пакеты на каждом узле. Установка расширения языка .NET также поддерживается в экземпляре отказоустойчивого кластера в SQL Server.

  • Не устанавливайте расширения языка SQL Server или расширение языка .NET на контроллере домена. Не удается выполнить установку расширений языка.

  • Расширения языка и службы машинного обучения устанавливаются по умолчанию в кластерах больших данных SQL Server. Если вы используете Кластеры больших данных, вам не нужно выполнять действия, описанные в этой статье. Дополнительные сведения см. в статье Запуск скриптов Python и R с помощью служб Машинное обучение на Кластеры больших данных SQL Server 2019.

Внимание

После завершения установки обязательно выполните действия после конфигурации, описанные в этой статье. Эти действия включают включение SQL Server для использования внешнего кода и добавление учетных записей, необходимых для выполнения кода C# от вашего имени SQL Server. Изменения в конфигурации обычно требуют перезапуска экземпляра или службы панели элементов.

Среда выполнения .NET

Долгосрочная поддержка .NET 6 (LTS) является самой ранней поддерживаемой средой выполнения. Среду выполнения .NET для Windows можно скачать. ОС Linux не поддерживается.

Если вы хотите использовать последнюю версию LTS среды выполнения .NET, необходимо перекомпилировать расширение языка .NET.

Получение установочного носителя

Расположение скачивания для SQL Server зависит от выпуска:

Запуск программы установки

Для локальных установок необходимо запускать программу установки с правами администратора. Если SQL Server устанавливается с удаленного общего ресурса, необходимо использовать учетную запись домена, у которой есть разрешения чтения и записи на этом удаленном ресурсе.

  1. Запустите мастер установки SQL Server.

  2. На вкладке Установка выберите параметр Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке.

  3. На странице Выбор компонентов выберите следующие компоненты:

    ядро СУБД службы. Чтобы использовать расширения языка с SQL Server, необходимо установить экземпляр ядро СУБД. Можно использовать экземпляр по умолчанию или именованный экземпляр.

    Машинное обучение службы и расширения языка. Этот параметр устанавливает компонент расширений языка, поддерживающий выполнение кода C#.

    Снимок экрана: возможности экземпляра.

  4. На странице Все готово для установки проверьте, включены ли указанные ниже компоненты, и нажмите Установить.

    • Службы ядра СУБД
    • Службы машинного обучения и расширения языка

    Обратите внимание на расположение папки в каталоге ..\Setup Bootstrap\Log, где хранятся файлы конфигурации. После завершения установки можно просмотреть установленные компоненты в файле сводки.

  5. Если после завершения установки будет предложено перезагрузить компьютер, выполните перезагрузку. Важно прочитать сообщение мастера установки после завершения установки. Дополнительные сведения см. в разделе View and Read SQL Server Setup Log Files.

Регистрация расширения языка

  1. Выполните следующие действия, чтобы скачать и зарегистрировать расширение языка .NET, которое используется для выполнения кода C#.

    1. dotnet-core-CSharp-lang-extension-windows-release.zip Скачайте файл из расширения языка .NET для репозитория SQL Server GitHub. Скачайте последнюю версию файла dotnet-core-CSharp-lang-extension-windows-release.zip для Windows. Если вы предпочитаете использовать более новую среду выполнения .NET, необходимо скомпилировать dotnet-core-CSharp-lang-extension из исходного кода GitHub.

    2. Используйте SQL Server Management Studio (SSMS) или Azure Data Studio для подключения к экземпляру SQL Server и выполните следующую команду Transact-SQL (T-SQL), чтобы зарегистрировать расширение языка .NET в CREATE EXTERNAL LANGUAGE.

    3. Измените путь в этом операторе, чтобы отразить расположение скачаемого 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
    
  2. Перезапустите Панель запуска.

    1. Откройте Диспетчер конфигурации SQL Server.

    2. В разделе "Службы SQL Server" щелкните "Панель запуска SQL Server" правой кнопкой мыши и выберите параметр Перезапустить.

Перезапустить службу

После завершения установки перезапустите ядро СУБД перед продолжением следующего шага, включив выполнение скрипта.

При перезапуске службы автоматически перезапускается соответствующая служба Панель запуска SQL Server.

Вы можете перезапустить службу с помощью команды перезапуска правой кнопкой мыши для экземпляра в SSMS, с помощью панели "Службы" в панель управления или с помощью диспетчер конфигурации SQL Server.

Включение выполнения сценария

  1. Откройте SQL Server Management Studio. Подключитесь к экземпляру, в который вы установили расширения языка, выберите Создать запрос, чтобы открыть окно запроса, и выполните следующую команду:

    EXEC sp_configure;
    

    Функция отключена (value по 0умолчанию) и должна быть явно включена администратором перед запуском кода C#.

  2. Чтобы включить внешний компонент написания сценариев, выполните следующую инструкцию:

    EXEC sp_configure 'external scripts enabled', 1;
    GO
    RECONFIGURE WITH OVERRIDE
    

    Если вы уже включили функцию для служб Машинное обучение, не выполняйте повторную настройку для расширений языка. Базовая платформа расширяемости поддерживает и те, и другие.

Регистрация внешнего языка

Для каждой базы данных, в которой необходимо использовать расширения языка, зарегистрируйте внешний язык с помощью команды CREATE EXTERNAL LANGUAGE.

В следующем примере добавляется внешний язык, вызываемый dotnet в базу данных sql Server в Windows.

CREATE EXTERNAL LANGUAGE [dotnet]
FROM (CONTENT = N'<path-to-zip>', FILE_NAME = 'dotnetextension.dll');
GO

Дополнительные сведения см. в разделе CREATE EXTERNAL LANGUAGE.

Проверка установки

Проверьте состояние установки экземпляра по журналам установки.

Выполните указанные ниже действия, чтобы убедиться в том, что все компоненты, используемые для запуска внешнего скрипта, запущены.

  1. Откройте новое окно запроса в SQL Server Management Studio или Azure Data Studio и выполните приведенную следующую инструкцию:

    EXEC sp_configure 'external scripts enabled';
    

    Теперь run_value задано значение 1.

  2. Откройте раздел Службы или диспетчер конфигурации SQL Server и убедитесь, что служба Панель запуска SQL Server запущена. У вас должна быть одна служба для каждого экземпляра ядро СУБД с установленными расширениями языка. Дополнительные сведения о службе см. в разделе "Архитектура расширяемости" в расширениях языка SQL Server.

Дополнительная настройка

Если шаг проверки выполнен успешно, можно запустить код C# из SQL Server Management Studio, Azure Data Studio, Visual Studio Code или любого другого клиента, который может отправлять инструкции T-SQL на сервер.

Если при выполнении команды возникнет ошибка, обратитесь к дополнительным шагам настройки, указанным в этом разделе. Возможно, потребуется внести дополнительные конфигурации в службу или базу данных.

На уровне экземпляра может быть включена дополнительная конфигурация:

В базе данных могут потребоваться следующие обновления конфигурации:

Примечание.

Необходимость дополнительной настройки зависит от схемы безопасности, в которой установлен ваш SQL Server, и от того, как ваши пользователи должны подключаться к базе данных и запускать внешние скрипты.

Предлагаемые оптимизации

Теперь, когда у вас все работает, может потребоваться оптимизировать сервер для поддержки расширения языка .NET.

Оптимизация сервера для расширения языка .NET

Параметры по умолчанию для установки SQL Server предназначены для оптимизации баланса сервера для различных служб, поддерживаемых ядро СУБД, которые могут включать процессы извлечения, преобразования и загрузки (ETL), отчетов, аудита и приложений, использующих данные SQL Server. В связи с этим при использовании параметров по умолчанию ресурсы для расширений языка могут быть ограничены или регулироваться, особенно в случае с операциями с интенсивным использованием памяти.

Чтобы задачам расширений языка назначались соответствующие приоритеты и выделялись необходимые ресурсы, рекомендуем использовать Resource Governor SQL Server для настройки внешнего пула ресурсов. Вы также можете изменить объем памяти, выделенной для ядро СУБД, или увеличить количество учетных записей, выполняемых в службе панели запуска SQL Server.

Если вы используете выпуск Standard и не имеете регулятора ресурсов, вы можете использовать динамические административные представления и расширенные события, а также мониторинг событий Windows для управления ресурсами сервера.

Следующий шаг

Разработчики C# могут приступить к работе с некоторыми простыми примерами и узнать основы работы C# с SQL Server. Сведения о следующем шаге см. по ссылке: