sys.dm_io_virtual_file_stats(Transact-SQL)
적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System(PDW)
데이터 및 로그 파일에 대한 I/O 통계를 반환합니다. 이 동적 관리 함수는 fn_virtualfilestats 함수를 대체합니다.
참고 항목
Azure Synapse Analytics에서 이를 호출하려면 이름 sys.dm_pdw_nodes_io_virtual_file_stats 사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.
구문
-- Syntax for SQL Server and Azure SQL Database
sys.dm_io_virtual_file_stats (
{ database_id | NULL },
{ file_id | NULL }
)
-- Syntax for Azure Synapse Analytics
sys.dm_pdw_nodes_io_virtual_file_stats
인수
database_id | 영
적용 대상: SQL Server 2008(10.0.x) 이상, Azure SQL Database
데이터베이스의 ID입니다. database_id 기본값이 없는 int입니다. 올바른 입력은 데이터베이스의 ID 번호 또는 NULL입니다. NULL을 지정하면 SQL Server 인스턴스의 모든 데이터베이스가 반환됩니다.
기본 제공 함수 DB_ID를 지정할 수 있습니다.
file_id | 영
적용 대상: SQL Server 2008(10.0.x) 이상, Azure SQL Database
파일의 ID입니다. file_id 기본값이 없는 int입니다. 유효한 입력은 파일 또는 NULL의 ID 번호입니다. NULL을 지정하면 데이터베이스의 모든 파일이 반환됩니다.
기본 제공 함수 FILE_IDEX 지정할 수 있으며 현재 데이터베이스의 파일을 참조합니다.
반환된 테이블
열 이름 | 데이터 형식 | 설명 |
---|---|---|
database_name | sysname | SQL Server에는 적용되지 않습니다. 데이터베이스 이름입니다. Azure Synapse Analytics의 경우 pdw_node_id 식별되는 노드에 저장된 데이터베이스의 이름입니다. 각 노드에는 13개의 파일이 있는 하나의 tempdb 데이터베이스가 있습니다. 각 노드에는 배포당 하나의 데이터베이스가 있으며 각 배포 데이터베이스에는 5개의 파일이 있습니다. 예를 들어 각 노드에 4개의 배포가 포함된 경우 결과에는 pdw_node_id당 20개의 배포 데이터베이스 파일이 표시됩니다. |
database_id | smallint | 데이터베이스의 ID입니다. Azure SQL Database에서 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 고유하지 않습니다. |
file_id | smallint | 파일의 ID입니다. |
sample_ms | bigint | 컴퓨터가 시작된 이후의 시간(밀리초)입니다. 이 열을 사용하여 이 함수의 다른 출력을 비교할 수 있습니다. 데이터 형식은 SQL Server 2008(10.0.x)에서 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 | 적용 되지 않습니다:: SQL Server 2008 (10.0.x) SQL Server 2012 (11.x)를 통해. 읽기를 위해 IO 리소스 거버넌스에서 도입한 총 IO 대기 시간입니다. Null을 허용하지 않습니다. 자세한 내용은 sys.dm_resource_governor_resource_pools(Transact-SQL)를 참조하세요. |
io_stall_queued_write_ms | bigint | 적용 되지 않습니다:: SQL Server 2008 (10.0.x) SQL Server 2012 (11.x)를 통해. 쓰기를 위해 IO 리소스 거버넌스에서 도입한 총 IO 대기 시간입니다. Null을 허용하지 않습니다. |
pdw_node_id | int | 적용 대상: 배포에 대한 노드의 Azure Synapse Analytics 식별자입니다. |
설명
카운터는 SQL Server(MSSQLSERVER) 서비스가 시작될 때마다 비워지도록 초기화됩니다.
사용 권한
VIEW SERVER STATE 권한이 필요합니다. 자세한 내용은 동적 관리 뷰 및 함수(Transact-SQL)를 참조하세요.
SQL Server 2022 이상에 대한 사용 권한
서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.
예제
A. 로그 파일에 대한 통계 반환
적용 대상: SQL Server 2008(10.0.x) 이상, Azure SQL Database
다음 예제에서는 AdventureWorks2022 데이터베이스의 로그 파일에 대한 통계를 반환합니다.
SELECT * FROM sys.dm_io_virtual_file_stats(DB_ID(N'AdventureWorks2022'), 2);
GO
B. tempdb의 파일에 대한 통계 반환
적용 대상: Azure Synapse Analytics
SELECT * FROM sys.dm_pdw_nodes_io_virtual_file_stats
WHERE database_name = 'tempdb' AND file_id = 2;
참고 항목
동적 관리 뷰 및 함수(Transact-SQL)
I O 관련 동적 관리 뷰 및 함수(Transact-SQL)
sys.database_files(Transact-SQL)
sys.master_files(Transact-SQL)