sys.fn_xe_file_target_read_file(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

확장 이벤트 비동기 파일 대상에서 만든 파일을 읽습니다. 하나의 이벤트(XML 형식)가 행당 반환됩니다.

확장 이벤트 event_file 대상은 수신한 데이터를 사람이 읽을 수 없는 이진 형식으로 저장합니다. 함수를 사용하여 파일의 .xel 내용을 읽습니다 sys.fn_xe_file_target_read_file . 이러한 파일은 Management Studio에서 읽을 수도 있습니다. 연습은 빠른 시작: 확장 이벤트를 참조하세요.

Transact-SQL 구문 표기 규칙

구문

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)부터 이 매개 변수는 파일이 더 이상 사용되지 않는 것처럼 NULL.xem 지정할 수 있습니다.

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 SQL Database 및 Azure SQL Managed Instance의 확장 이벤트에 대한 이벤트 파일 대상 코드를 검토합니다.

로컬 파일 시스템에 대한 wild카드 및/또는 경로를 지정하면 다음과 유사한 오류 메시지가 표시됩니다.

Msg 40538, Level 16, State 3, Line 15
A valid URL beginning with 'https://' is required as value for any filepath specified.

사용 권한

서버에 대한 VIEW SERVER 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 timestamp_utc > DATEADD(DAY, -1, GETUTCDATE());