sys.dm_external_script_execution_stats
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL Managed Instance
외부 스크립트 요청의 각 유형별로 하나의 행을 반환합니다. 외부 스크립트 요청은 지원되는 외부 스크립트 언어로 그룹화됩니다. 등록된 각 외부 스크립트 함수에 대해 하나의 행이 생성됩니다. 임의 외부 스크립트 함수는 다음과 같이 rxExec
부모 프로세스에서 보내지 않는 한 기록되지 않습니다.
참고 항목
이 DMV(동적 관리 뷰)는 외부 스크립트 실행을 지원하는 기능을 설치하고 사용하도록 설정한 경우에만 사용할 수 있습니다. 자세한 내용은 SQL Server 2016의 R Services, SQL Server 2017 이상의 Machine Learning Services(R, Python) 및 Azure SQL Managed Instance Machine Learning Services를 참조하세요.
열 이름 | 데이터 형식 | 설명 |
---|---|---|
language |
nvarchar | 등록된 외부 스크립트 언어의 이름입니다. 각 외부 스크립트에서 연결된 실행 프로그램을 시작하려면 스크립트 요청에서 언어를 지정 해야 합니다. |
counter_name |
nvarchar | 등록된 외부 스크립트 함수의 이름입니다. Null을 허용하지 않습니다. |
counter_value |
integer | 등록된 외부 스크립트 함수가 서버에서 호출된 총 인스턴스 수입니다. 이 값은 인스턴스에 기능이 설치된 시간부터 시작하여 누적되며 다시 설정할 수 없습니다. |
사용 권한
SQL Server 2019(15.x) 및 이전 버전의 경우 서버에 대한 VIEW SERVER STATE 권한이 필요합니다.
SQL Server 2022(16.x) 이상 버전의 경우 서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.
외부 스크립트를 실행하는 사용자에게는 EXECUTE ANY EXTERNAL SCRIPT에 대한 추가 권한이 있어야 합니다. 그러나 이 DMV는 관리자가 이 권한 없이 사용할 수 있습니다.
설명
이 DMV는 SQL Server에서 제공하는 새 외부 스크립트 실행 기능의 전체 사용을 모니터링하기 위해 내부 원격 분석을 위해 제공됩니다. 원격 분석 서비스는 LaunchPad가 실행될 때 시작되고, 등록된 외부 스크립트 함수를 호출할 때마다 디스크 기반 카운터를 늘립니다.
일반적으로 생성된 프로세스가 활성 상태인 경우에만 성능 카운터가 유효합니다. 따라서 DMV의 쿼리는 실행을 중지한 서비스에 대한 자세한 데이터를 표시할 수 없습니다. 예를 들어 시작 관리자가 외부 스크립트를 실행하지만 신속하게 완료하는 경우 기존 DMV에 데이터가 표시되지 않을 수 있습니다.
따라서 이 DMV에서 추적하는 카운터는 계속 실행되고 인스턴스가 종료되더라도 디스크에 쓰기를 사용하여 상태를 sys.dm_external_script_requests
유지합니다.
카운터 값
SQL Server 2016(13.x)에서 지원되는 유일한 외부 언어는 R이며 외부 스크립트 요청은 R Services(데이터베이스 내)에서 처리됩니다. SQL Server 2017(14.x) 이상 버전 및 Azure SQL Managed Instance에서 R 및 Python은 모두 지원되는 외부 언어이며 외부 스크립트 요청은 Machine Learning Services에서 처리됩니다.
R의 경우 이 DMV는 인스턴스에서 수행되는 R 호출 수를 추적합니다. 예를 들어 호출되고 병렬로 실행되는 경우 rxLinMod
카운터는 1씩 증가합니다.
R 언어의 경우 counter_name 필드에 표시되는 카운터 값은 등록된 ScaleR 함수의 이름을 나타냅니다. counter_value 필드 값은 특정 ScaleR 함수의 누적 인스턴스 수를 나타냅니다.
Python의 경우 이 DMV는 인스턴스에서 수행되는 Python 호출 수를 추적합니다.
개수는 인스턴스에 기능이 설치되고 활성화될 때 시작되며, 상태를 유지하는 파일이 삭제되거나 관리자가 덮어쓸 때까지 누적됩니다. 따라서 일반적으로 counter_value 값을 다시 설정할 수 없습니다. 세션, 달력 시간 또는 기타 간격별로 사용량을 모니터링하려면 테이블에 대한 개수를 캡처하는 것이 좋습니다.
R에서 외부 스크립트 함수 등록
R은 임의의 스크립트를 지원하며 R 커뮤니티는 각각 고유한 기능과 메서드를 사용하여 수천 개의 패키지를 제공합니다. 그러나 이 DMV는 SQL Server 2016(13.x) R Services와 함께 설치된 ScaleR 함수만 모니터링합니다.
이러한 함수의 등록은 기능이 설치될 때 수행되며 등록된 함수를 추가하거나 삭제할 수 없습니다.
예제
서버에서 실행되는 R 스크립트 수 보기
다음 예제에서는 R 언어에 대한 외부 스크립트 실행의 누적 수를 표시합니다.
SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'R';
서버에서 실행되는 Python 스크립트 수 보기
다음 예제에서는 Python 언어에 대한 외부 스크립트 실행의 누적 수를 표시합니다.
SELECT counter_name, counter_value
FROM sys.dm_external_script_execution_stats
WHERE language = 'Python';