sys.dm_io_virtual_file_stats (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsDatabase 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 .

Note

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

Arguments

database_id | NULLO

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

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, database SQL di Azure

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 della colonna Tipo di dati Descrzione
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 valori NULL. Per altre informazioni, vedere 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 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).

Permissions

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.

Examples

I campioni di codice in questo articolo utilizzano il AdventureWorks2025 database di esempi di ORAdventureWorksDW2025, che puoi scaricare dal repository GitHub Azure Data SQL Samples Repository.

A. Restituire statistiche per un file di log

Si applica a: SQL Server e database SQL di Azure

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;