Condividi tramite


sys.dm_io_virtual_file_stats (Transact-SQL)

Si applica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema di Piattaforma Analitica (PDW)Database SQL in Microsoft Fabric

Restituisce le statistiche di I/O per i file di log e di dati. Questa funzione di gestione dinamica sostituisce la funzione fn_virtualfilestats .

Nota

Per chiamare questa vista di gestione dinamica (DMV) di Azure Synapse Analytics, usa il nome sys.dm_pdw_nodes_io_virtual_file_stats Questa sintassi non è supportata dal server less SQL pool in Azure Synapse Analytics.

Sintassi

Sintassi per SQL Server e database SQL di Azure:

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

Sintassi per Azure Synapse Analytics:

sys.dm_pdw_nodes_io_virtual_file_stats

Argomenti

database_id | NULLO

Si applica a: SQL Server 2008 (10.0.x) e successivamente, Azure SQL Database

ID del database. database_id è int, senza impostazione predefinita. Gli input validi sono il numero ID di un database o NULL. Quando NULL viene specificato, tutti i database nell'istanza di SQL Server vengono restituiti.

È possibile specificare la funzione predefinita DB_ID.

file_id | NULLO

Si applica a: SQL Server 2008 (10.0.x) e successivamente, Azure SQL Database

ID del file. file_id è int, senza impostazione predefinita. Gli input validi sono il numero ID di un file o NULL. Quando NULL viene specificato, tutti i file presenti nel database vengono restituiti.

È possibile specificare la funzione predefinita FILE_IDEX e fa riferimento a un file nel database corrente.

Tabella restituita

Nome colonna Tipo di dati Descrizione
database_name sysname Nome del database.

Per Azure Synapse Analytics, questo è il nome del database memorizzato sul nodo identificato da pdw_node_id. Ogni nodo ha un tempdb database che contiene 13 file. Ogni nodo ha anche un database per distribuzione, e ogni database di distribuzione ha cinque file. Ad esempio, se ogni nodo contiene quattro distribuzioni, i risultati mostrano 20 file database di distribuzione per pdw_node_idogni .

Non si applica a: SQL Server.
database_id smallint ID del database.

In database SQL di Azure i valori sono univoci all'interno di un database singolo o di un pool elastico, ma non all'interno di un server logico.
file_id smallint ID di file.
sample_ms bigint Numero di millisecondi dall'avvio del computer. Questa colonna può essere utilizzata per confrontare diversi output di questa funzione.

Il tipo di dato è int per SQL Server 2014 (12.x) e versioni precedenti. In queste versioni, il valore verrà reimpostato su 0 dopo circa 25 giorni di tempo di attività continuo del motore di database.
num_of_reads bigint Numero di letture eseguite nel file.
num_of_bytes_read bigint Numero totale di byte letti nel file.
io_stall_read_ms bigint Tempo totale di attesa degli utenti, in millisecondi, per il completamento delle operazioni di lettura nel file.
num_of_writes bigint Numero di scritture eseguite nel file.
num_of_bytes_written bigint Numero totale di byte scritti nel file.
io_stall_write_ms bigint Tempo totale di attesa degli utenti, in millisecondi, per il completamento delle operazioni di scrittura nel file.
io_stall bigint Tempo totale di attesa degli utenti, in millisecondi, per il completamento delle operazioni di I/O nel file.
size_on_disk_bytes bigint Numero di byte utilizzati nel disco per il file. Per i file sparse, questo numero corrisponde al numero effettivo di byte nel disco utilizzati per gli snapshot di database.
file_handle varbinary Handle di file Windows per il file.
io_stall_queued_read_ms bigint Latenza di I/O totale introdotta dalla governance delle risorse di I/O per le letture. Non ammette i valori NULL. Per maggiori informazioni, vedi sys.dm_resource_governor_resource_pools.

Non si applica a: SQL Server 2012 (11.x) e versioni precedenti.
io_stall_queued_write_ms bigint Latenza di I/O totale introdotta dalla governance delle risorse di I/O per le scritture. Non ammette i valori NULL.

Non si applica a: SQL Server 2012 (11.x) e versioni precedenti.
pdw_node_id int Identificatore del nodo per la distribuzione.

Si applica a: Azure Synapse Analytics

Osservazioni:

I contatori vengono inizializzati in modo vuoto ogni volta che viene avviato il servizio SQL Server (MSSQLSERVER).

Autorizzazioni

SQL Server 2019 (15.x) e versioni precedenti richiedono VIEW SERVER STATE l'autorizzazione.

SQL Server 2022 (16.x) e versioni successive richiedono VIEW SERVER PERFORMANCE STATE l'autorizzazione per il server.

Esempi

Gli esempi di codice in questo articolo usano il database di esempio AdventureWorks2025 o AdventureWorksDW2025, che è possibile scaricare dalla home page Microsoft SQL Server Samples and Community Projects.

R. Restituire statistiche per un file di log

Si applica a: SQL Server e Azure SQL Database

Il seguente esempio restituisce statistiche per il file di log nel database AdventureWorks2025.

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

B. Restituire statistiche per il file in tempdb

Si applica a: Azure Synapse Analytics

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