sys.fn_virtualfilestats(Transact-SQL)
로그 파일을 포함하여 데이터베이스 파일의 I/O 통계를 반환합니다. SQL Server에서는 sys.dm_io_virtual_file_stats 동적 관리 뷰에서도 이 정보를 사용할 수 있습니다.
구문
fn_virtualfilestats ( { database_id | NULL } , { file_id | NULL } )
인수
database_id | NULL
데이터베이스의 ID입니다. database_id는 int이며 기본값은 없습니다. SQL Server 인스턴스의 모든 데이터베이스에 대한 정보를 반환하려면 NULL을 지정합니다.file_id | NULL
파일 ID입니다. file_id는 int이며 기본값은 없습니다. 데이터베이스의 모든 파일에 대한 정보를 반환하려면 NULL을 지정하십시오.
반환된 테이블
열 이름 |
데이터 형식 |
설명 |
---|---|---|
DbId |
smallint |
데이터베이스의 ID입니다. |
FileId |
smallint |
파일의 ID입니다. |
TimeStamp |
int |
데이터를 사용한 시점의 데이터베이스 타임스탬프입니다. |
NumberReads |
bigint |
파일에 대해 읽기가 실행된 횟수입니다. |
BytesRead |
bigint |
파일에 대해 실행된 읽기의 바이트 수입니다. |
IoStallReadMS |
bigint |
사용자가 파일에 대한 읽기 I/O가 완료될 때까지 대기한 총 시간(밀리초)입니다. |
NumberWrites |
bigint |
파일에 대해 쓰기가 실행된 횟수입니다. |
BytesWritten |
bigint |
파일에 대해 실행된 쓰기의 바이트 수입니다. |
IoStallWriteMS |
bigint |
사용자가 파일에 대한 쓰기 I/O가 완료될 때까지 대기한 총 시간(밀리초)입니다. |
IoStallMS |
bigint |
IoStallReadMS 및 IoStallWriteMS의 합계입니다. |
FileHandle |
bigint |
파일 핸들의 값입니다. |
BytesOnDisk |
bigint |
디스크에 있는 파일의 실제 크기(바이트)입니다. 데이터베이스 파일의 경우 이 값은 sys.database_files의 size와 동일하지만 페이지가 아닌 바이트 단위로 표현됩니다. 데이터베이스 스냅숏 스파스 파일의 경우 이 값은 운영 체제에서 파일에 사용 중인 공간입니다. |
주의
fn_virtualfilestats는 시스템 테이블 반환 함수이며 파일에 대해 수행된 총 I/O 수와 같은 통계 정보를 제공합니다. 이 함수는 사용자가 파일에 읽기/쓰기를 수행할 때 대기해야 하는 시간의 길이를 추적하는 데 사용됩니다. I/O 작업이 빈번하게 이루어지는 파일을 식별하는 데 사용되기도 합니다.
사용 권한
서버에 대한 VIEW SERVER STATE 권한이 필요합니다.
예
1.데이터베이스에 대한 통계 정보 표시
다음 예에서는 ID가 1인 데이터베이스의 파일 ID 1에 대한 통계 정보를 표시합니다.
SELECT *
FROM fn_virtualfilestats(1, 1);
GO
2.명명된 데이터베이스 및 파일에 대한 통계 정보 표시
다음 예에서는 AdventureWorks2012 예제 데이터베이스의 로그 파일에 대한 통계 정보를 표시합니다. 시스템 함수 DB_ID는 database_id 매개 변수를 지정하는 데 사용됩니다.
SELECT *
FROM fn_virtualfilestats(DB_ID(N'AdventureWorks2012'), 2);
GO
3.모든 데이터베이스 및 파일에 대한 통계 정보 표시
다음 예에서는 SQL Server 인스턴스에서 모든 데이터베이스의 모든 파일에 대한 통계 정보를 표시합니다.
SELECT *
FROM fn_virtualfilestats(NULL,NULL);
GO