sys.dm_io_virtual_file_stats (Transact-SQL)

适用于SQL Server Azure SQL 数据库 Azure SQL 托管实例 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 数据库

数据库 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 不适用于::SQL Server。

数据库名称。

对于 Azure Synapse Analytics,这是存储在pdw_node_id标识的节点上的数据库的名称。 每个节点都有一个 tempdb 数据库,其中包含 13 个文件。 每个节点每个分发也有一个数据库,每个分发数据库有 5 个文件。 例如,如果每个节点包含 4 个分布区,则结果显示每个pdw_node_id 20 个分发数据库文件。
database_id smallint 数据库的 ID。

在 Azure SQL 数据库中,这些值在单一数据库或弹性池中是唯一的,但在逻辑服务器中不是唯一的。
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 数据库

以下示例返回 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)