Udostępnij za pomocą


sys.dm_io_virtual_file_stats (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zwraca statystyki I/O dla danych i plików logów. Ta dynamiczna funkcja zarządzania zastępuje funkcję fn_virtualfilestats .

Uwaga / Notatka

Aby wywołać ten dynamiczny widok zarządzania (DMV) z Azure Synapse Analytics, użyj nazwy sys.dm_pdw_nodes_io_virtual_file_stats Ta składnia nie jest obsługiwana przez serwerless SQL pool w Azure Synapse Analytics.

Składnia

Składnia dla programu SQL Server i usługi Azure SQL Database:

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

Składnia usługi Azure Synapse Analytics:

sys.dm_pdw_nodes_io_virtual_file_stats

Arguments

database_id | ZERO

Dotyczy do: SQL Server 2008 (10.0.x) i nowszych, Azure SQL Database

Identyfikator bazy danych. database_id jest int, bez domyślnego stanowczości. Poprawne dane wejściowe to numer ID bazy danych lub NULL. Gdy NULL zostanie określona, wszystkie bazy danych w instancji SQL Server są zwracane.

Można określić wbudowaną funkcję DB_ID .

file_id | ZERO

Dotyczy do: SQL Server 2008 (10.0.x) i nowszych, Azure SQL Database

Identyfikacja pliku. file_id jest int, bez domyślnego stanowczości. Poprawne wejścia to numer ID pliku lub NULL. Gdy NULL zostanie określona, wszystkie pliki w bazie danych są zwracane.

Wbudowana funkcja FILE_IDEX może być określona i odnosi się do pliku w aktualnej bazie danych.

Zwrócona tabela

Nazwa kolumny Typ danych Description
database_name sysname Nazwa bazy danych.

W Azure Synapse Analytics jest to nazwa bazy danych przechowywanej na węźle zidentyfikowanym przez pdw_node_id. Każdy węzeł ma jedną tempdb bazę danych zawierającą 13 plików. Każdy węzeł ma również jedną bazę danych na dystrybucję, a każda baza dystrybucji ma pięć plików. Na przykład, jeśli każdy węzeł zawiera cztery rozkłady, wyniki pokazują 20 plików bazy danych dystrybucji na .pdw_node_id

Nie dotyczy do: SQL Server.
database_id smallint ID bazy danych.

W usłudze Azure SQL Database wartości są unikatowe w ramach pojedynczej bazy danych lub elastycznej puli, ale nie w obrębie serwera logicznego.
file_id smallint Identyfikator pliku.
sample_ms bigint Liczba milisekund od uruchomienia komputera. Ta kolumna może być użyta do porównania różnych wyników tej funkcji.

Typ danych to int dla SQL Server 2014 (12.x) i wcześniejszych wersji. W tych wersjach wartość resetuje się do 0 po około 25 dniach ciągłego dostępności silnika bazy danych.
num_of_reads bigint Liczba odczytów wykonanych w pliku.
num_of_bytes_read bigint Całkowita liczba bajtów odczytanych w tym pliku.
io_stall_read_ms bigint Łączny czas, w milisekundach, jaki użytkownicy oczekiwali na odczyty przypisane do pliku.
num_of_writes bigint Liczba zapisów wykonanych w tym pliku.
num_of_bytes_written bigint Całkowita liczba bajtów zapisanych w pliku.
io_stall_write_ms bigint Łączny czas, czyli w milisekundach, użytkownik czekał na zakończenie zapisów pliku.
io_stall bigint Łączny czas, w milisekundach, jaki użytkownicy czekali na zakończenie operacji wejścia/wyjścia pliku.
size_on_disk_bytes bigint Liczba bajtów używanych na dysku do tego pliku. W przypadku plików rzadkich liczba ta to rzeczywista liczba bajtów na dysku używanych do migawek bazy danych.
file_handle varbinary Uchwyt plików Windows dla tego pliku.
io_stall_queued_read_ms bigint Całkowite opóźnienie IO wprowadzone przez zarządzanie zasobami IO dla odczytu. Nie może być null. Więcej informacji można znaleźć w sys.dm_resource_governor_resource_pools.

Nie dotyczy do: SQL Server 2012 (11.x) i wcześniejszych wersji.
io_stall_queued_write_ms bigint Całkowite opóźnienie IO wprowadzone przez zarządzanie zasobami IO dla zapisów. Nie może być null.

Nie dotyczy do: SQL Server 2012 (11.x) i wcześniejszych wersji.
pdw_node_id int Identyfikator węzła dla dystrybucji.

Dotyczy: Azure Synapse Analytics

Uwagi

Liczniki są inicjalizowane do opróżniania za każdym razem, gdy uruchamiana jest usługa SQL Server (MSSQLSERVER).

Permissions

Program SQL Server 2019 (15.x) i starsze wersje wymagają VIEW SERVER STATE uprawnień.

Program SQL Server 2022 (16.x) i nowsze wersje wymagają VIEW SERVER PERFORMANCE STATE uprawnień na serwerze.

Przykłady

Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.

A. Zwracaj statystyki dla pliku logu

Dotyczy to: SQL Server i Azure SQL Database

Poniższy przykład zwraca statystyki dla pliku loga w bazie AdventureWorks2025.

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

B. Statystyki zwrotu pliku w tempdb

Dotyczy: Azure Synapse Analytics

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