다음을 통해 공유


sys.dm_io_virtual_file_stats(Transact-SQL)

적용 대상:SQL 서버Azure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics분석 플랫폼 시스템(PDW)Microsoft Fabric의 SQL 데이터베이스

데이터 및 로그 파일에 대한 I/O 통계를 반환합니다. 이 동적 관리 함수는 fn_virtualfilestats 함수를 대체합니다.

참고 항목

Azure Synapse Analytics에서 이 동적 관리 뷰(DMV)를 호출하려면 이 구 sys.dm_pdw_nodes_io_virtual_file_stats 문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

구문

SQL Server 및 Azure SQL Database에 대한 구문:

sys.dm_io_virtual_file_stats (
    { database_id | NULL } ,
    { file_id | NULL }
)

Azure Synapse Analytics 구문:

sys.dm_pdw_nodes_io_virtual_file_stats

인수

database_id | 영

적용 대상: SQL Server 2008 (10.0.x) 및 이후 Azure SQL 데이터베이스

데이터베이스의 ID입니다. database_id 기본값이 없는 int입니다. 유효한 입력은 데이터베이스의 ID 번호 또는 NULL입니다. 가 지정되면 NULL SQL Server 인스턴스의 모든 데이터베이스가 반환됩니다.

기본 제공 함수 DB_ID를 지정할 수 있습니다.

file_id | 영

적용 대상: SQL Server 2008 (10.0.x) 및 이후 Azure SQL 데이터베이스

파일의 ID입니다. file_id 기본값이 없는 int입니다. 유효한 입력은 파일의 ID 번호 또는 NULL입니다. 를 지정하면 NULL 데이터베이스의 모든 파일이 반환됩니다.

기본 제공 함수 FILE_IDEX 지정할 수 있으며 현재 데이터베이스의 파일을 참조합니다.

반환된 테이블

열 이름 데이터 형식 설명
database_name sysname 데이터베이스 이름입니다.

Azure Synapse Analytics의 경우, 이는 로 pdw_node_id식별된 노드에 저장된 데이터베이스 이름입니다. 각 노드는 13개의 파일을 가진 하나의 tempdb 데이터베이스를 가지고 있습니다. 각 노드는 배포판당 하나의 데이터베이스를 가지며, 각 배포판 데이터베이스는 다섯 개의 파일을 가지고 있습니다. 예를 들어, 각 노드가 네 개의 분포를 포함한다면, 결과는 각 노드당 pdw_node_id20개의 분포 데이터베이스 파일을 보여줍니다.

SQL Server에는 적용되지 않습니다.
database_id smallint 데이터베이스의 ID입니다.

Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 고유하지 않습니다.
file_id smallint 파일의 ID입니다.
sample_ms bigint 컴퓨터가 시작된 이후의 시간(밀리초)입니다. 이 열은 이 함수의 다양한 출력을 비교하는 데 사용할 수 있습니다.

SQL Server 2014(12.x) 및 이전 버전에서는 데이터 타입이 int 입니다. 이러한 버전에서는 약 25일의 연속 데이터베이스 엔진 가동 시간 후에 값이 0으로 다시 설정됩니다.
num_of_reads bigint 파일에서 실행된 읽기 수입니다.
num_of_bytes_read bigint 이 파일에서 읽은 총 바이트 수입니다.
io_stall_read_ms bigint 사용자가 파일에서 실행된 읽기를 기다린 총 시간(밀리초)입니다.
num_of_writes bigint 이 파일에 대한 쓰기 수입니다.
num_of_bytes_written bigint 파일에 기록된 총 바이트 수입니다.
io_stall_write_ms bigint 사용자가 파일에 쓰기가 완료되기를 기다린 총 시간(밀리초)입니다.
io_stall bigint 사용자가 파일에서 I/O가 완료되기를 기다린 총 시간(밀리초)입니다.
size_on_disk_bytes bigint 이 파일의 디스크에 사용되는 바이트 수입니다. 스파스 파일의 경우 이 숫자는 데이터베이스 스냅샷에 사용되는 디스크의 실제 바이트 수입니다.
file_handle varbinary 이 파일에 대한 Windows 파일 핸들입니다.
io_stall_queued_read_ms bigint 읽기를 위해 IO 리소스 거버넌스에서 도입한 총 IO 대기 시간입니다. Null을 허용하지 않습니다. 자세한 내용은 sys.dm_resource_governor_resource_pools를 참조하세요.

SQL Server 2012 (11.x) 및 이전 버전에는 적용되지 않습니다.
io_stall_queued_write_ms bigint 쓰기를 위해 IO 리소스 거버넌스에서 도입한 총 IO 대기 시간입니다. Null을 허용하지 않습니다.

SQL Server 2012 (11.x) 및 이전 버전에는 적용되지 않습니다.
pdw_node_id int 분포의 노드 식별자.

적용 대상: Azure Synapse Analytics

설명

카운터는 SQL Server(MSSQLSERVER) 서비스가 시작될 때마다 비워지도록 초기화됩니다.

사용 권한

SQL Server 2019(15.x) 및 이전 버전에는 사용 권한이 필요합니다 VIEW SERVER STATE .

SQL Server 2022(16.x) 이상 버전에는 서버에 대한 권한이 필요합니다 VIEW SERVER PERFORMANCE STATE .

예제

이 문서의 코드 샘플은 AdventureWorks2025 또는 AdventureWorksDW2025 샘플 데이터베이스를 사용합니다. 이 데이터베이스는 Microsoft SQL Server 샘플 및 커뮤니티 프로젝트 홈페이지에서 다운로드할 수 있습니다.

A. 로그 파일에 대한 통계 반환

적용 대상: SQL Server 및 Azure SQL Database

다음 예시는 AdventureWorks2025 데이터베이스의 로그 파일에 대한 통계를 반환합니다.

SELECT *
FROM sys.dm_io_virtual_file_stats(DB_ID(N'AdventureWorks2025'), 2);

B. tempdb의 파일에 대한 통계 반환

적용 대상: Azure Synapse Analytics

SELECT *
FROM sys.dm_pdw_nodes_io_virtual_file_stats
WHERE database_name = 'tempdb'
      AND file_id = 2;