다음을 통해 공유


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 가용성 그룹이 언어 확장에 대해 지원됩니다. 언어 확장을 설치하고 각 노드에서 패키지를 구성해야 합니다. .NET 언어 확장 설치는 SQL Server의 장애 조치(failover) 클러스터 인스턴스에서도 지원됩니다.

  • 도메인 컨트롤러에 SQL Server 언어 확장 또는 .NET 언어 확장을 설치하지 마세요. 설치 프로그램의 언어 확장 부분이 실패합니다.

  • 언어 확장 및 Machine Learning Services는 SQL Server 빅 데이터 클러스터에 기본적으로 설치됩니다. 빅 데이터 클러스터를 사용하는 경우에는 이 문서의 단계를 수행하지 않아도 됩니다. 자세한 내용은 SQL Server 2019 빅 데이터 클러스터에서 Machine Learning Services를 사용하여 Python 및 R 스크립트 실행을 참조하세요.

Important

설치가 완료되면 이 문서에 설명된 구성 후 단계를 완료해야 합니다. 이러한 단계에는 SQL Server에서 외부 코드를 사용하도록 설정하고 SQL Server가 사용자를 대신하여 C# 코드를 실행하는 데 필요한 계정을 추가하는 것이 포함됩니다. 일반적으로 구성 변경 시 인스턴스를 다시 시작하거나 실행 패드 서비스를 다시 시작해야 합니다.

‘.NET 런타임’

.NET 6 LTS(장기 지원)는 지원되는 가장 빠른 런타임입니다. Windows용 .NET 런타임을 다운로드할 수 있습니다. Linux는 지원되지 않습니다.

.NET 런타임의 최신 LTS 릴리스를 사용하려면 .NET 언어 확장을 다시 컴파일해야 합니다.

설치 미디어 다운로드

SQL Server 다운로드 위치는 버전에 따라 다릅니다.

  • SQL Server Enterprise, Standard 및 Express Edition 이러한 버전은 프로덕션 용도로 사용이 허가됩니다. Enterprise 및 Standard Edition의 경우 설치 미디어를 얻으려면 소프트웨어 공급업체에 문의하세요. 구매 정보 및 Microsoft 파트너 디렉터리는 Microsoft 구매 웹 사이트에서 확인할 수 있습니다.
  • 최신 무료 버전

설치 프로그램 실행

로컬 설치의 경우 관리자로 설치 프로그램을 실행해야 합니다. 원격 공유로 SQL Server를 설치하는 경우 원격 공유에 대한 읽기 및 실행 권한이 있는 도메인 계정을 사용해야 합니다.

  1. SQL Server에 대한 설치 마법사를 시작합니다.

  2. 설치 탭에서 새 SQL Server 독립 실행형 설치 또는 기존 설치에 기능 추가를 선택합니다.

  3. 기능 선택 페이지에서 다음 옵션을 선택합니다.

    데이터베이스 엔진 서비스: SQL Server에서 언어 확장을 사용하려면 데이터베이스 엔진의 인스턴스를 설치해야 합니다. 기본 인스턴스나 명명된 인스턴스를 사용할 수 있습니다.

    Machine Learning 서비스 및 언어 확장: 이 옵션은 C# 코드 실행을 지원하는 언어 확장 구성 요소를 설치합니다.

    인스턴스 필드의 스크린샷

  4. 설치 준비 완료 페이지에서 이러한 선택 사항이 포함되어 있는지 확인하고 설치를 선택합니다.

    • 데이터베이스 엔진 서비스
    • Machine Learning Services 및 언어 확장

    구성 파일이 저장된 ..\Setup Bootstrap\Log 경로 아래에 있는 폴더의 위치를 확인합니다. 설치가 완료되면 요약 파일에 설치된 구성 요소를 검토할 수 있습니다.

  5. 설치가 완료된 후 컴퓨터를 다시 시작하라는 메시지가 나타나면 다시 시작합니다. 설치가 끝나면 설치 마법사에 표시되는 메시지를 읽어야 합니다. 자세한 내용은 View and Read SQL Server Setup Log Files을 참조하세요.

언어 확장 등록

  1. C# 코드를 실행하는 데 사용되는 .NET 언어 확장을 다운로드하고 등록하려면 다음 단계를 수행합니다.

    1. SQL Server GitHub 리포지토리용 .NET 언어 확장에서 dotnet-core-CSharp-lang-extension-windows-release.zip 파일을 다운로드합니다. 최신 Window sdotnet-core-CSharp-lang-extension-windows-release.zip 파일을 다운로드합니다. 최신 .NET 런타임을 사용하려면 GitHub 소스 코드에서 dotnet-core-CSharp-lang-extension을 컴파일해야 합니다.

    2. SSMS(SQL Server Management Studio) 또는 Azure Data Studio를 사용하여 SQL Server 인스턴스에 연결하고 다음 T-SQL(Transact-SQL) 명령을 실행하여 CREATE EXTERNAL LANGUAGE로 .NET 언어 확장을 등록합니다.

    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의 인스턴스에 대해 Restart 명령을 마우스 오른쪽 단추로 클릭하거나 제어판의 서비스 패널을 사용하거나 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
    

    이미 Machine Learning Services 기능을 사용하도록 설정한 경우 언어 확장에 대해 다시 구성을 실행하지 마세요. 기본 확장성 플랫폼은 둘 모두 지원합니다.

외부 언어 등록

언어 확장을 사용하려는 각 데이터베이스에 대해 외부 언어 만들기를 사용하여 외부 언어를 등록해야 합니다.

다음 예제는 Windows에서 SQL Server의 데이터베이스에 dotnet이라는 외부 언어를 추가합니다.

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

자세한 내용은 외부 언어 만들기를 참조하세요.

설치 확인

설치 로그에서 인스턴스의 설치 상태를 확인합니다.

외부 스크립트를 시작하는 데 사용되는 모든 구성 요소가 실행 중인지 확인하려면 다음 단계를 사용합니다.

  1. SQL Server Management Studio 또는 Azure Data Studio에서 새 쿼리 창을 열고 다음 문을 실행합니다.

    EXEC sp_configure 'external scripts enabled';
    

    run_value은(는) 이제 1로 설정됩니다.

  2. 서비스 패널 또는 SQL Server 구성 관리자를 열고 SQL Server 실행 패드 서비스가 실행 중인지 확인합니다. 언어 확장이 설치된 모든 데이터베이스 엔진 인스턴스에 대해 하나의 서비스가 있어야 합니다. 서비스에 대한 자세한 내용은 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 Resource Governor를 사용하여 외부 리소스 풀을 구성하는 것이 좋습니다. 또한 데이터베이스 엔진에 할당된 메모리 크기를 변경하거나 SQL Server 실행 패드 서비스에서 실행되는 계정 수를 늘릴 수도 있습니다.

Standard Edition을 사용 중인 경우 Resource Governor가 없으면 DMV(동적 관리 뷰) 및 확장 이벤트뿐만 아니라 Windows 이벤트 모니터링을 사용하여 서버 리소스를 쉽게 관리할 수 있습니다.

다음 단계

C# 개발자는 몇 가지 간단한 예제를 시작하고 C#이 SQL Server에서 작동하는 방식의 기초를 알아볼 수 있습니다. 다음 단계는 아래 링크를 참조하세요.