sys.fn_xe_file_target_read_file(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance
확장 이벤트 비동기 파일 대상에서 만든 파일을 읽습니다. 행마다 하나의 이벤트가 XML 형식으로 반환됩니다.
확장 이벤트 event_file
대상은 수신한 데이터를 사람이 읽을 수 없는 이진 형식으로 저장합니다. 함수를 사용하여 파일의 .xel
내용을 읽습니다 sys.fn_xe_file_target_read_file
. 이러한 파일은 Management Studio에서 읽을 수도 있습니다. 연습은 빠른 시작: 확장 이벤트를 참조하세요.
구문
sys.fn_xe_file_target_read_file ( path , mdpath , initial_file_name , initial_offset )
인수
path
읽을 파일의 경로입니다. 경로 는 와일드카드를 포함할 수 있으며 파일 이름을 포함할 수 있습니다. 경로는 기본값이 없는 nvarchar(260)입니다. Azure SQL Database의 컨텍스트에서 이 값은 Azure Storage의 파일에 대한 HTTP URL입니다.
mdpath
경로 인수로 지정된 파일 또는 파일에 해당하는 메타데이터 파일의 경로 입니다. mdpath는 기본값이 없는 nvarchar(260)입니다.
SQL Server 2012(11.x) 이상 버전에서는 이 매개 변수가 필요하지 않습니다. 이전 버전의 SQL Server에서 생성된 로그 파일의 경우 이전 버전과의 호환성을 위해 유지되었습니다. SQL Server 2016(13.x) 이상 버전에서는 파일이 더 이상 사용되지 않아 이 매개 변수를 .xem
사용할 NULL
수 있습니다.
initial_file_name
경로에서 읽을 첫 번째 파일입니다. initial_file_name 기본값이 없는 nvarchar(260)입니다. 인수로 지정된 경우 NULL
경로에 있는 모든 파일을 읽습니다.
참고 항목
initial_file_name 및 initial_offset 쌍을 이루는 인수입니다. 두 인수의 값을 지정하는 경우 다른 인수의 값을 지정해야 합니다.
initial_offset
이전에 읽은 마지막 오프셋을 지정하는 데 사용되며 오프셋(포함)까지 모든 이벤트를 건너뜁니다. 이벤트 열거형은 지정된 오프셋 이후에 시작됩니다. initial_offset 대단합니다. 인수로 지정되면 NULL
전체 파일을 읽습니다.
반환된 테이블
열 이름 | 데이터 형식 | 설명 |
---|---|---|
module_guid |
uniqueidentifier | 이벤트 모듈 GUID입니다. Null을 허용하지 않습니다. |
package_guid |
uniqueidentifier | 이벤트 패키지 GUID입니다. Null을 허용하지 않습니다. |
object_name |
nvarchar(256) | 이벤트의 이름입니다. Null을 허용하지 않습니다. |
event_data |
nvarchar(max) | XML 형식의 이벤트 내용입니다. Null을 허용하지 않습니다. |
file_name |
nvarchar(260) | 이벤트가 포함된 파일의 이름입니다. Null을 허용하지 않습니다. |
file_offset |
bigint | 이벤트를 포함하는 파일의 블록 오프셋입니다. Null을 허용하지 않습니다. |
timestamp_utc |
datetime2(7) | 이벤트의 날짜 및 시간(UTC 표준 시간대)입니다. Null을 허용하지 않습니다. 적용 대상: SQL Server 2017(14.x) 이상 버전 및 Azure SQL Database. |
설명
Management Studio에서 실행하여 큰 결과 집합을 sys.fn_xe_file_target_read_file
읽으면 오류가 발생할 수 있습니다. 결과-파일 모드(SQL Server Management Studio, Ctrl+Shift+F)를 사용하여 대용량 결과 집합을 사람이 읽을 수 있는 파일로 내보내고 대신 다른 도구를 사용하여 파일을 읽습니다.
SQL Server 2008(10.0.x) 및 SQL Server 2008 R2(10.50.x)는 XEL 및 XEM 형식으로 생성된 추적 결과를 허용합니다. SQL Server 2012(11.x) 확장 이벤트는 XEL 형식의 추적 결과만 지원합니다. Management Studio를 사용하여 추적 결과를 XEL 형식으로 읽는 것이 좋습니다.
Azure SQL
Azure SQL Managed Instance 또는 Azure SQL Database에서 Azure Blob Storage에 파일을 저장 .xel
합니다. 직접 만들고 Azure Blob Storage에 저장하는 확장 이벤트 세션에서 읽으려면 sys.fn_xe_file_target_read_file
을 사용할 수 있습니다. 예를 들어 연습에서는 Azure Storage에서 event_file 대상으로 이벤트 세션 만들기를 검토합니다.
와일드카드 및/또는 로컬 파일 시스템의 경로를 지정하는 경우 다음과 유사한 오류 메시지가 표시됩니다.
Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.
사용 권한
SQL Server 2019(15.x) 및 이전 버전에서는 서버에 대한 권한이 필요합니다 VIEW SERVER STATE
.
SQL Server 2022(16.x) 이상 버전에서는 서버에 대한 권한이 필요합니다 VIEW SERVER PERFORMANCE STATE
.
예제
A. 파일 대상에서 데이터 검색
SQL Server 2014(12.x) 및 이전 버전의 경우 다음 예제에서는 파일과 .xem
파일을 포함하여 모든 파일에서 모든 행을 .xel
가져옵니다. 이 예제에서는 파일 대상 및 메타파일이 폴더의 추적 폴더에 C:\traces\
있습니다.
SELECT *
FROM sys.fn_xe_file_target_read_file('C:\traces\*.xel', 'C:\traces\metafile.xem', NULL, NULL);
SQL Server 2016(13.x) 이상 버전에서 다음 예제에서는 기본 폴더의 모든 .xel
파일 내에서 이벤트를 검색합니다. 기본 위치는 \MSSQL\Log
인스턴스의 설치 폴더 내에 있습니다.
SELECT *
FROM sys.fn_xe_file_target_read_file('*.xel', NULL, NULL, NULL);
SQL Server 2017(14.x) 이상 버전에서 다음 예제에서는 기본 제공 system_health 세션에서 마지막 날의 데이터만 검색합니다. system_health 세션은 SQL Server에 기본적으로 포함된 확장 이벤트 세션입니다. 자세한 내용은 system_health 세션 사용을 참조하세요.
SELECT *
FROM sys.fn_xe_file_target_read_file('system_health*.xel', NULL, NULL, NULL)
WHERE CAST(timestamp_utc AS DATETIME2(7)) > DATEADD(DAY, -1, GETUTCDATE());