적용 대상:SQL 서버
Azure SQL Database
Azure SQL Managed Instance
Azure 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;